leadguru-jobs 0.645.0__py3-none-any.whl → 0.647.0__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: leadguru_jobs
3
- Version: 0.645.0
3
+ Version: 0.647.0
4
4
  Summary: LGT jobs builds
5
5
  Author-email: developer@leadguru.co
6
6
  Classifier: Development Status :: 5 - Production/Stable
@@ -16,7 +16,7 @@ lgt_jobs/jobs/bot_stats_update.py,sha256=Q89ID9iIbdLcMIWuDFIW0qZnbEPp8E2MJdM-Yvq
16
16
  lgt_jobs/jobs/chat_history.py,sha256=rj337uHT2XmyDu3oMPbnCBxSsRn4roxDNS0hsbvoI7I,5040
17
17
  lgt_jobs/jobs/connect_sources.py,sha256=vOKu2Q9cmQsj4VMVzOoEJkD1wzE9XurbIChx35rES8I,4957
18
18
  lgt_jobs/jobs/inbox_leads.py,sha256=6UhPp9AfSAGb3elFDT6jm7j2HZ9jPOPngsUj-hUKAYw,4867
19
- lgt_jobs/jobs/load_slack_people.py,sha256=JEggnsWvfA7L45lObwuBFIvBVhwfePbq08E89VXpI8E,3264
19
+ lgt_jobs/jobs/load_slack_people.py,sha256=-KzMYHFpmSEuoiSgHd3fUu4mPOfcZOY0t2WNIXcMXpk,4373
20
20
  lgt_jobs/jobs/mass_message.py,sha256=1mFcBlL2MhzLbj5yrd_NyJc7TXDWCcROAzGDnr0miMU,2035
21
21
  lgt_jobs/jobs/send_code.py,sha256=dIlLPkG3GgGKIEqGiElyzrtdrnJNTL1Ak2V0xnE-WIQ,824
22
22
  lgt_jobs/jobs/send_slack_message.py,sha256=yJVzGQijM5KL-QDA0EQy-8-kvR7TSZmRw-4tX1ge5Hk,2343
@@ -103,7 +103,7 @@ lgt_jobs/lgt_data/repositories/post/posts.py,sha256=ZA19L-CYdxLhlapyMQtSJzP3QMUl
103
103
  lgt_jobs/services/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
104
104
  lgt_jobs/services/web_client.py,sha256=oMyWJxwGeIe3f40fPT7xcisjDg3BhA3Ipf8dr1jVT-Y,1549
105
105
  lgt_jobs/templates/new_message.html,sha256=dZl8UmdAOOMq4nidvAgMFroSrTV7Pw0RWt2yLp_2idg,6989
106
- leadguru_jobs-0.645.0.dist-info/METADATA,sha256=7fBvc5qvPvuqnO36W5SNnzgza39Gm3TMA0LROnas2Zs,1319
107
- leadguru_jobs-0.645.0.dist-info/WHEEL,sha256=HiCZjzuy6Dw0hdX5R3LCFPDmFS4BWl8H-8W39XfmgX4,91
108
- leadguru_jobs-0.645.0.dist-info/top_level.txt,sha256=rIuw1DqwbnZyeoarBSC-bYeGOhv9mZBs7_afl9q4_JI,9
109
- leadguru_jobs-0.645.0.dist-info/RECORD,,
106
+ leadguru_jobs-0.647.0.dist-info/METADATA,sha256=yownuhghwkwO20wEC1wW7paRk9ys3Yfo0_z_oBxogE0,1319
107
+ leadguru_jobs-0.647.0.dist-info/WHEEL,sha256=nCVcAvsfA9TDtwGwhYaRrlPhTLV9m-Ga6mdyDtuwK18,91
108
+ leadguru_jobs-0.647.0.dist-info/top_level.txt,sha256=rIuw1DqwbnZyeoarBSC-bYeGOhv9mZBs7_afl9q4_JI,9
109
+ leadguru_jobs-0.647.0.dist-info/RECORD,,
@@ -1,5 +1,5 @@
1
1
  Wheel-Version: 1.0
2
- Generator: setuptools (72.2.0)
2
+ Generator: setuptools (73.0.0)
3
3
  Root-Is-Purelib: true
4
4
  Tag: py3-none-any
5
5
 
@@ -1,4 +1,8 @@
1
+ import random
1
2
  from abc import ABC
3
+ from datetime import datetime, UTC
4
+ from time import sleep
5
+
2
6
  from lgt_jobs.lgt_common.enums.slack_errors import SlackErrors
3
7
  from lgt_jobs.lgt_common.slack_client.slack_client import SlackClient
4
8
  from lgt_jobs.lgt_data.models.bots.base_bot import Source
@@ -48,6 +52,7 @@ class LoadSlackPeopleJob(BaseBackgroundJob, ABC):
48
52
  return
49
53
 
50
54
  for member in list_users_response["members"]:
55
+ sleep(random.uniform(0, 1))
51
56
  if not member.get("profile"):
52
57
  continue
53
58
 
@@ -60,8 +65,27 @@ class LoadSlackPeopleJob(BaseBackgroundJob, ABC):
60
65
  source.source_type = bot.source.source_type
61
66
  member_info: SlackMemberInformation = SlackMemberInformation.from_slack_response(member, source)
62
67
  members_count += 1
68
+ presence_response = client.get_presence(member_info.sender_id)
69
+ last_activity = None
70
+ if presence_response.status_code == 200:
71
+ presence_data = presence_response.json()
72
+ if presence_data.get('ok'):
73
+ now = datetime.now(UTC)
74
+ online = presence_data.get('presence')
75
+ if presence_data.get('online'):
76
+ online = 'active'
77
+ last_activity = datetime.fromtimestamp(presence_data.get('last_activity'), tz=UTC) \
78
+ if presence_data.get('last_activity') else None
79
+ if online == 'active':
80
+ last_activity = now
81
+
82
+ member_info.online = online
83
+ member_info.online_updated_at = now
84
+
63
85
  member_info_dic = member_info.to_dic()
64
86
  member_info_dic.pop('created_at')
87
+ if last_activity:
88
+ member_info_dic['last_activity'] = last_activity
65
89
  SlackContactUserRepository().collection().update_one({"sender_id": member_info.sender_id,
66
90
  "source.source_id": source.source_id},
67
91
  {"$set": member_info_dic}, upsert=True)