leadguru-jobs 0.582.0__py3-none-any.whl → 0.584.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.582.0
3
+ Version: 0.584.0
4
4
  Summary: LGT jobs builds
5
5
  Author-email: developer@leadguru.co
6
6
  Classifier: Development Status :: 5 - Production/Stable
@@ -12,7 +12,7 @@ lgt_jobs/assets/images/logo.png,sha256=nt377FGkBalBF9Z9TYQRv9loHolTXwU8_VRYvCXXz
12
12
  lgt_jobs/assets/images/mail.png,sha256=eORzQcAMkFr7DjgtABVhJ_zFuXgO7OXv78lLF4b39B0,7168
13
13
  lgt_jobs/jobs/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
14
14
  lgt_jobs/jobs/analytics.py,sha256=IIsWt4A1qUw3w-S-8W16uKY1FRVWfXXA41_mu4uCNiM,979
15
- lgt_jobs/jobs/bot_stats_update.py,sha256=RmPA-7Nel2kkZmfGuDSTiSQjipr_DcsL13QgVRjrx0w,7531
15
+ lgt_jobs/jobs/bot_stats_update.py,sha256=yDA6-FqSC5T2jTPaHImSjnuI6OD0pw-BF9VagsfmkXM,7806
16
16
  lgt_jobs/jobs/chat_history.py,sha256=tZ4XyOGdy1k6r4uotxSSKbXjTR_oRK6Ym0YthFYBtl8,6200
17
17
  lgt_jobs/jobs/connect_sources.py,sha256=_eA86KnS3AC6YCI1xk7VCV7lFmPRxta-wUStfdmajQU,4790
18
18
  lgt_jobs/jobs/inbox_leads.py,sha256=OSX-FNx27gWEKNBBc-hyq2odCxXytz7WHtQJajtz274,5670
@@ -27,7 +27,7 @@ lgt_jobs/lgt_common/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSu
27
27
  lgt_jobs/lgt_common/helpers.py,sha256=tJNrKJYPa_MBmfRVrpHryoOWe4gnv7xOlmHuTh-bMBw,428
28
28
  lgt_jobs/lgt_common/lgt_logging.py,sha256=Zxr2sPpY-qU_YbL_47OM6dE_JA1ejG_Vr1PNnjF_jwo,576
29
29
  lgt_jobs/lgt_common/discord_client/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
30
- lgt_jobs/lgt_common/discord_client/discord_client.py,sha256=dJr1tw9h-lTp5PUiZUHO1lrMGpeG-78NXCzLo5FdKAU,2459
30
+ lgt_jobs/lgt_common/discord_client/discord_client.py,sha256=_zX7yfDi6ShNuA3zhuDvf9TZacJwGPX0Tcu1OIAmj_U,2540
31
31
  lgt_jobs/lgt_common/discord_client/methods.py,sha256=C46Vq9_-dlvs0nEW6ck8QvAmE_nPUfU89MJUhHaPMLk,391
32
32
  lgt_jobs/lgt_common/enums/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
33
33
  lgt_jobs/lgt_common/enums/slack_errors.py,sha256=nK7uoguq0F8bIHROp73oeszehT7CgS_VU45n9_Gq_WY,172
@@ -43,12 +43,12 @@ lgt_jobs/lgt_data/analytics.py,sha256=fiN88zcIxs_bRMmXL7ftp4FvBeJ5I7QBPE4tbwKJ39
43
43
  lgt_jobs/lgt_data/engine.py,sha256=Rsbz-CApAo_TVDssdjBkv8v_fVOZm_Uh1S6W4fnaEWo,7728
44
44
  lgt_jobs/lgt_data/enums.py,sha256=jBH5WGBtDAvFrh4iiPIzlQ-XrImMpuwqstuasG55mJ0,2209
45
45
  lgt_jobs/lgt_data/helpers.py,sha256=NDa-V5EYaJfkGoWsmQSwSe6N_jxNxs8tHRQzW1iST6k,480
46
- lgt_jobs/lgt_data/model.py,sha256=Nkl28_3u3auFAylDBIpiwQfNEqx3hpQaFz2SyigoSxM,28660
46
+ lgt_jobs/lgt_data/model.py,sha256=G_x0C7mR__OtM_ps2X5_Rg7iK1ijh4iCYbavsLxdaqA,28652
47
47
  lgt_jobs/lgt_data/mongo_repository.py,sha256=kLE906lfqhHF9gp1qvH_3XKCZGCZnxjLMrBLWBy7doo,46099
48
48
  lgt_jobs/services/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
49
49
  lgt_jobs/services/web_client.py,sha256=GLWsJkIC8rv6xLFaLwcMm4EwBlVDu0njORwkZqBJaE4,2086
50
50
  lgt_jobs/templates/new_message.html,sha256=dZl8UmdAOOMq4nidvAgMFroSrTV7Pw0RWt2yLp_2idg,6989
51
- leadguru_jobs-0.582.0.dist-info/METADATA,sha256=WlY_NPvMquclGJsoqhQvjfaZQCwIogWExP8LKU_H8Eo,1319
52
- leadguru_jobs-0.582.0.dist-info/WHEEL,sha256=GJ7t_kWBFywbagK5eo9IoUwLW6oyOeTKmQ-9iHFVNxQ,92
53
- leadguru_jobs-0.582.0.dist-info/top_level.txt,sha256=rIuw1DqwbnZyeoarBSC-bYeGOhv9mZBs7_afl9q4_JI,9
54
- leadguru_jobs-0.582.0.dist-info/RECORD,,
51
+ leadguru_jobs-0.584.0.dist-info/METADATA,sha256=908hY0c8mcnidsnn9K3u_3wWpOoeVbRXvy6v6Q4ToOA,1319
52
+ leadguru_jobs-0.584.0.dist-info/WHEEL,sha256=GJ7t_kWBFywbagK5eo9IoUwLW6oyOeTKmQ-9iHFVNxQ,92
53
+ leadguru_jobs-0.584.0.dist-info/top_level.txt,sha256=rIuw1DqwbnZyeoarBSC-bYeGOhv9mZBs7_afl9q4_JI,9
54
+ leadguru_jobs-0.584.0.dist-info/RECORD,,
@@ -33,8 +33,6 @@ class BotStatsUpdateJob(BaseBackgroundJob, ABC):
33
33
  users_rep = UserMongoRepository()
34
34
  bot = bots_rep.get_one(id=data.bot_id, include_deleted=True)
35
35
  received_messages, filtered_messages = get_bots_aggregated_analytics(bot_ids=[str(bot.id)])
36
- bot.messages_received = sum([received_messages[doc] for doc in received_messages])
37
- bot.messages_filtered = sum([filtered_messages[doc] for doc in filtered_messages])
38
36
 
39
37
  if bot.source.source_type == SourceType.DISCORD:
40
38
  client = DiscordClient(bot.token)
@@ -74,6 +72,8 @@ class BotStatsUpdateJob(BaseBackgroundJob, ABC):
74
72
  if discord_server.icon:
75
73
  discord_server.icon = (f'https://cdn.discordapp.com/icons/{discord_server.id}/'
76
74
  f'{discord_server.icon}.png')
75
+ discord_server.messages_received = received_messages.get(discord_server.id)
76
+ discord_server.messages_filtered = filtered_messages.get(discord_server.id)
77
77
  time.sleep(random.randint(1, 2))
78
78
 
79
79
  bot.servers = discord_servers
@@ -126,14 +126,12 @@ class BotStatsUpdateJob(BaseBackgroundJob, ABC):
126
126
  connected_channels = 0
127
127
  channels_users = {}
128
128
  active_channels = {}
129
- users_count = 0
130
129
  for channel in channels:
131
130
  if channel['is_member']:
132
131
  active_channels[channel['id']] = channel['name']
133
132
  connected_channels += 1
134
133
  num_members = channel.get('num_members', 0)
135
134
  channels_users[channel['id']] = num_members
136
- users_count += num_members
137
135
 
138
136
  bot.active_channels = active_channels
139
137
  bot.connected_channels = connected_channels
@@ -141,6 +139,7 @@ class BotStatsUpdateJob(BaseBackgroundJob, ABC):
141
139
  bot.channels_users = channels_users
142
140
  if bot.recent_messages is None:
143
141
  bot.recent_messages = []
142
+ max_users_count = 0
144
143
  if bot.servers:
145
144
  channels = [Channel.from_dic(channel_dict) for channel_dict in channels]
146
145
  for channel in channels:
@@ -150,8 +149,12 @@ class BotStatsUpdateJob(BaseBackgroundJob, ABC):
150
149
  channel.subscribers = channels_users.get(slack_channel.id, 0)
151
150
  else:
152
151
  channel.active = channel.is_member
152
+ if channel.subscribers > max_users_count:
153
+ max_users_count = channel.subscribers
153
154
  bot.servers[0].channels = channels
154
- bot.servers[0].subscribers = users_count
155
+ bot.servers[0].subscribers = max_users_count
156
+ bot.servers[0].messages_received = received_messages.get(bot.source.source_id, 0)
157
+ bot.servers[0].messages_filtered = filtered_messages.get(bot.source.source_id, 0)
155
158
 
156
159
  # save only last 50 messages
157
160
  bot.recent_messages = bot.recent_messages[-50:]
@@ -29,7 +29,8 @@ class DiscordClient:
29
29
  return {}
30
30
 
31
31
  def get_servers(self) -> list | dict:
32
- response = requests.get(f"{self.base_url}{DiscordMethods.USER_GUILDS.value}?with_counts=true", headers=self.headers)
32
+ response = requests.get(f"{self.base_url}{DiscordMethods.USER_GUILDS.value}?with_counts=true",
33
+ headers=self.headers)
33
34
  return self.__response(response).json()
34
35
 
35
36
  def get_dms(self) -> list | dict:
@@ -43,7 +44,8 @@ class DiscordClient:
43
44
  return response.json()
44
45
 
45
46
  def get_channels(self, guild_id: str) -> list | dict:
46
- response = requests.get(f"{self.base_url}{DiscordMethods.guild_channels(guild_id)}", headers=self.headers)
47
+ response = requests.get(f"{self.base_url}{DiscordMethods.guild_channels(guild_id)}?with_counts=true",
48
+ headers=self.headers)
47
49
  return self.__response(response).json()
48
50
 
49
51
  def get_invite_link(self, channel_id: str) -> Response:
@@ -102,8 +102,6 @@ class BaseBotModel(Credentials):
102
102
  self.connected_channels = None
103
103
  self.channels_users = None
104
104
  self.users_count = None
105
- self.messages_received: int = 0
106
- self.messages_filtered: int = 0
107
105
  self.recent_messages: List[str] = []
108
106
  self.icon = None
109
107
  self.active_channels = {}
@@ -163,6 +161,8 @@ class Server:
163
161
  self.deleted = False
164
162
  self.subscribers = 0
165
163
  self.approximate_member_count = 0
164
+ self.messages_received: int = 0
165
+ self.messages_filtered: int = 0
166
166
 
167
167
  @classmethod
168
168
  def from_dic(cls, dic: dict):
@@ -328,11 +328,11 @@ class UserModel(BaseModel):
328
328
  def subscription_expired(self):
329
329
  return self.subscription_expired_at.replace(tzinfo=UTC) < datetime.now(UTC)
330
330
 
331
- def get_slack_user(self, slack_email: str):
332
- return next(filter(lambda x: slack_email == x.email and not x.deleted, self.slack_users), None)
331
+ def get_slack_user(self, slack_email: str) -> SlackUser:
332
+ return next(filter(lambda x: slack_email == x.email, self.slack_users), None)
333
333
 
334
- def get_discord_user(self, login: str):
335
- return next(filter(lambda x: login == x.login and not x.deleted, self.discord_users), None)
334
+ def get_discord_user(self, login: str) -> DiscordUser:
335
+ return next(filter(lambda x: login == x.login, self.discord_users), None)
336
336
 
337
337
 
338
338
  class DiscordUser(DictionaryModel):