leadguru-jobs 0.582.0__tar.gz → 0.584.0__tar.gz

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.
Files changed (61) hide show
  1. {leadguru_jobs-0.582.0 → leadguru_jobs-0.584.0}/PKG-INFO +1 -1
  2. {leadguru_jobs-0.582.0 → leadguru_jobs-0.584.0}/leadguru_jobs.egg-info/PKG-INFO +1 -1
  3. {leadguru_jobs-0.582.0 → leadguru_jobs-0.584.0}/lgt_jobs/jobs/bot_stats_update.py +8 -5
  4. {leadguru_jobs-0.582.0 → leadguru_jobs-0.584.0}/lgt_jobs/lgt_common/discord_client/discord_client.py +4 -2
  5. {leadguru_jobs-0.582.0 → leadguru_jobs-0.584.0}/lgt_jobs/lgt_data/model.py +6 -6
  6. {leadguru_jobs-0.582.0 → leadguru_jobs-0.584.0}/MANIFEST.in +0 -0
  7. {leadguru_jobs-0.582.0 → leadguru_jobs-0.584.0}/README.md +0 -0
  8. {leadguru_jobs-0.582.0 → leadguru_jobs-0.584.0}/leadguru_jobs.egg-info/SOURCES.txt +0 -0
  9. {leadguru_jobs-0.582.0 → leadguru_jobs-0.584.0}/leadguru_jobs.egg-info/dependency_links.txt +0 -0
  10. {leadguru_jobs-0.582.0 → leadguru_jobs-0.584.0}/leadguru_jobs.egg-info/not-zip-safe +0 -0
  11. {leadguru_jobs-0.582.0 → leadguru_jobs-0.584.0}/leadguru_jobs.egg-info/requires.txt +0 -0
  12. {leadguru_jobs-0.582.0 → leadguru_jobs-0.584.0}/leadguru_jobs.egg-info/top_level.txt +0 -0
  13. {leadguru_jobs-0.582.0 → leadguru_jobs-0.584.0}/lgt_jobs/__init__.py +0 -0
  14. {leadguru_jobs-0.582.0 → leadguru_jobs-0.584.0}/lgt_jobs/assets/images/arrow.png +0 -0
  15. {leadguru_jobs-0.582.0 → leadguru_jobs-0.584.0}/lgt_jobs/assets/images/firework.png +0 -0
  16. {leadguru_jobs-0.582.0 → leadguru_jobs-0.584.0}/lgt_jobs/assets/images/lock.png +0 -0
  17. {leadguru_jobs-0.582.0 → leadguru_jobs-0.584.0}/lgt_jobs/assets/images/logo.png +0 -0
  18. {leadguru_jobs-0.582.0 → leadguru_jobs-0.584.0}/lgt_jobs/assets/images/mail.png +0 -0
  19. {leadguru_jobs-0.582.0 → leadguru_jobs-0.584.0}/lgt_jobs/basejobs.py +0 -0
  20. {leadguru_jobs-0.582.0 → leadguru_jobs-0.584.0}/lgt_jobs/env.py +0 -0
  21. {leadguru_jobs-0.582.0 → leadguru_jobs-0.584.0}/lgt_jobs/jobs/__init__.py +0 -0
  22. {leadguru_jobs-0.582.0 → leadguru_jobs-0.584.0}/lgt_jobs/jobs/analytics.py +0 -0
  23. {leadguru_jobs-0.582.0 → leadguru_jobs-0.584.0}/lgt_jobs/jobs/chat_history.py +0 -0
  24. {leadguru_jobs-0.582.0 → leadguru_jobs-0.584.0}/lgt_jobs/jobs/connect_sources.py +0 -0
  25. {leadguru_jobs-0.582.0 → leadguru_jobs-0.584.0}/lgt_jobs/jobs/inbox_leads.py +0 -0
  26. {leadguru_jobs-0.582.0 → leadguru_jobs-0.584.0}/lgt_jobs/jobs/load_slack_people.py +0 -0
  27. {leadguru_jobs-0.582.0 → leadguru_jobs-0.584.0}/lgt_jobs/jobs/mass_message.py +0 -0
  28. {leadguru_jobs-0.582.0 → leadguru_jobs-0.584.0}/lgt_jobs/jobs/send_code.py +0 -0
  29. {leadguru_jobs-0.582.0 → leadguru_jobs-0.584.0}/lgt_jobs/jobs/send_slack_message.py +0 -0
  30. {leadguru_jobs-0.582.0 → leadguru_jobs-0.584.0}/lgt_jobs/jobs/update_slack_profile.py +0 -0
  31. {leadguru_jobs-0.582.0 → leadguru_jobs-0.584.0}/lgt_jobs/jobs/user_balance_update.py +0 -0
  32. {leadguru_jobs-0.582.0 → leadguru_jobs-0.584.0}/lgt_jobs/jobs/workspace_connect.py +0 -0
  33. {leadguru_jobs-0.582.0 → leadguru_jobs-0.584.0}/lgt_jobs/lgt_common/__init__.py +0 -0
  34. {leadguru_jobs-0.582.0 → leadguru_jobs-0.584.0}/lgt_jobs/lgt_common/discord_client/__init__.py +0 -0
  35. {leadguru_jobs-0.582.0 → leadguru_jobs-0.584.0}/lgt_jobs/lgt_common/discord_client/methods.py +0 -0
  36. {leadguru_jobs-0.582.0 → leadguru_jobs-0.584.0}/lgt_jobs/lgt_common/enums/__init__.py +0 -0
  37. {leadguru_jobs-0.582.0 → leadguru_jobs-0.584.0}/lgt_jobs/lgt_common/enums/slack_errors.py +0 -0
  38. {leadguru_jobs-0.582.0 → leadguru_jobs-0.584.0}/lgt_jobs/lgt_common/helpers.py +0 -0
  39. {leadguru_jobs-0.582.0 → leadguru_jobs-0.584.0}/lgt_jobs/lgt_common/lgt_logging.py +0 -0
  40. {leadguru_jobs-0.582.0 → leadguru_jobs-0.584.0}/lgt_jobs/lgt_common/pubsub/__init__.py +0 -0
  41. {leadguru_jobs-0.582.0 → leadguru_jobs-0.584.0}/lgt_jobs/lgt_common/pubsub/messages.py +0 -0
  42. {leadguru_jobs-0.582.0 → leadguru_jobs-0.584.0}/lgt_jobs/lgt_common/pubsub/pubsubfactory.py +0 -0
  43. {leadguru_jobs-0.582.0 → leadguru_jobs-0.584.0}/lgt_jobs/lgt_common/slack_client/__init__.py +0 -0
  44. {leadguru_jobs-0.582.0 → leadguru_jobs-0.584.0}/lgt_jobs/lgt_common/slack_client/methods.py +0 -0
  45. {leadguru_jobs-0.582.0 → leadguru_jobs-0.584.0}/lgt_jobs/lgt_common/slack_client/slack_client.py +0 -0
  46. {leadguru_jobs-0.582.0 → leadguru_jobs-0.584.0}/lgt_jobs/lgt_common/slack_client/web_client.py +0 -0
  47. {leadguru_jobs-0.582.0 → leadguru_jobs-0.584.0}/lgt_jobs/lgt_data/__init__.py +0 -0
  48. {leadguru_jobs-0.582.0 → leadguru_jobs-0.584.0}/lgt_jobs/lgt_data/analytics.py +0 -0
  49. {leadguru_jobs-0.582.0 → leadguru_jobs-0.584.0}/lgt_jobs/lgt_data/engine.py +0 -0
  50. {leadguru_jobs-0.582.0 → leadguru_jobs-0.584.0}/lgt_jobs/lgt_data/enums.py +0 -0
  51. {leadguru_jobs-0.582.0 → leadguru_jobs-0.584.0}/lgt_jobs/lgt_data/helpers.py +0 -0
  52. {leadguru_jobs-0.582.0 → leadguru_jobs-0.584.0}/lgt_jobs/lgt_data/mongo_repository.py +0 -0
  53. {leadguru_jobs-0.582.0 → leadguru_jobs-0.584.0}/lgt_jobs/main.py +0 -0
  54. {leadguru_jobs-0.582.0 → leadguru_jobs-0.584.0}/lgt_jobs/runner.py +0 -0
  55. {leadguru_jobs-0.582.0 → leadguru_jobs-0.584.0}/lgt_jobs/services/__init__.py +0 -0
  56. {leadguru_jobs-0.582.0 → leadguru_jobs-0.584.0}/lgt_jobs/services/web_client.py +0 -0
  57. {leadguru_jobs-0.582.0 → leadguru_jobs-0.584.0}/lgt_jobs/simple_job.py +0 -0
  58. {leadguru_jobs-0.582.0 → leadguru_jobs-0.584.0}/lgt_jobs/smtp.py +0 -0
  59. {leadguru_jobs-0.582.0 → leadguru_jobs-0.584.0}/lgt_jobs/templates/new_message.html +0 -0
  60. {leadguru_jobs-0.582.0 → leadguru_jobs-0.584.0}/setup.cfg +0 -0
  61. {leadguru_jobs-0.582.0 → leadguru_jobs-0.584.0}/setup.py +0 -0
@@ -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
@@ -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
@@ -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):