leadguru-jobs 0.675.0__py3-none-any.whl → 0.677.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.675.0
3
+ Version: 0.677.0
4
4
  Summary: LGT jobs builds
5
5
  Author-email: developer@leadguru.co
6
6
  Classifier: Development Status :: 5 - Production/Stable
@@ -9,11 +9,11 @@ lgt_jobs/assets/images/arrow.png,sha256=Lr_zG1TyySAWX78jiojcV7j8BHe2S_Oi7eZYAfe4
9
9
  lgt_jobs/assets/images/arrow_blue.png,sha256=opxsLU7K6C2tNfvFSvDvi9xcZBDf3t6jPz4TESN07o8,572
10
10
  lgt_jobs/assets/images/firework.png,sha256=9d_0lUpDFfT3e4JTgp5XVb03qAdtO9yNVi1c1KoQDp8,33754
11
11
  lgt_jobs/assets/images/lock.png,sha256=515llTFqboG9PYXIrXhlbPZ5lQOHXjEYyQkXc9WfJxc,5978
12
- lgt_jobs/assets/images/logo.png,sha256=nt377FGkBalBF9Z9TYQRv9loHolTXwU8_VRYvCXXzx0,12596
12
+ lgt_jobs/assets/images/logo.png,sha256=93E3fkGtJ9BJo1FTf5KDvxIp6loNrItqOWvjpa-bvm4,10176
13
13
  lgt_jobs/assets/images/mail.png,sha256=eORzQcAMkFr7DjgtABVhJ_zFuXgO7OXv78lLF4b39B0,7168
14
14
  lgt_jobs/jobs/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
15
15
  lgt_jobs/jobs/analytics.py,sha256=IIsWt4A1qUw3w-S-8W16uKY1FRVWfXXA41_mu4uCNiM,979
16
- lgt_jobs/jobs/bot_stats_update.py,sha256=Q89ID9iIbdLcMIWuDFIW0qZnbEPp8E2MJdM-YvqK3hE,8488
16
+ lgt_jobs/jobs/bot_stats_update.py,sha256=CeqjBzvGkBSSG_pHImkvU5sXZLy7cAhcwjZ8ltFB1sI,8163
17
17
  lgt_jobs/jobs/chat_history.py,sha256=rj337uHT2XmyDu3oMPbnCBxSsRn4roxDNS0hsbvoI7I,5040
18
18
  lgt_jobs/jobs/connect_sources.py,sha256=vOKu2Q9cmQsj4VMVzOoEJkD1wzE9XurbIChx35rES8I,4957
19
19
  lgt_jobs/jobs/inbox_leads.py,sha256=6UhPp9AfSAGb3elFDT6jm7j2HZ9jPOPngsUj-hUKAYw,4867
@@ -76,7 +76,7 @@ lgt_jobs/lgt_data/models/leads/extended_lead.py,sha256=ezFrKv-f5GBXr3QAM-V_qJQ-i
76
76
  lgt_jobs/lgt_data/models/leads/lead.py,sha256=mTZh8YV06nX9OWYvv_X7rDdIperB-RPChrEuheeYMU0,1300
77
77
  lgt_jobs/lgt_data/models/leads/message.py,sha256=7mXwYfSpmhY_zC8TfUdAZzxsPP-02bOqVjdkN4Vid5s,1533
78
78
  lgt_jobs/lgt_data/models/notifications/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
79
- lgt_jobs/lgt_data/models/notifications/notification.py,sha256=71VfVHboe3j6rsgEPAtsboQJh23l8Ax4SA8BndKeeN0,19874
79
+ lgt_jobs/lgt_data/models/notifications/notification.py,sha256=C94nFu97niNzlHJn-ZXnwvWUeejo3QI6t2OuFCPZvqE,19858
80
80
  lgt_jobs/lgt_data/models/notifications/notification_settings.py,sha256=VFddLvk2ROz4n50wYuZmqBDn7MssFwj-e9DbWweIVA4,2780
81
81
  lgt_jobs/lgt_data/models/people/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
82
82
  lgt_jobs/lgt_data/models/people/people.py,sha256=pm60uMVmNIxOGCBAtZWhmXSJOe0SJ4C1y_HurUq00oY,3420
@@ -105,7 +105,7 @@ lgt_jobs/lgt_data/repositories/post/posts.py,sha256=ZA19L-CYdxLhlapyMQtSJzP3QMUl
105
105
  lgt_jobs/services/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
106
106
  lgt_jobs/services/web_client.py,sha256=oMyWJxwGeIe3f40fPT7xcisjDg3BhA3Ipf8dr1jVT-Y,1549
107
107
  lgt_jobs/templates/new_message.html,sha256=dZl8UmdAOOMq4nidvAgMFroSrTV7Pw0RWt2yLp_2idg,6989
108
- leadguru_jobs-0.675.0.dist-info/METADATA,sha256=1oo5ny0_r2PiAMyHFV39rg0pov2VYl7QEOwIoxfw5BE,1319
109
- leadguru_jobs-0.675.0.dist-info/WHEEL,sha256=GV9aMThwP_4oNCtvEC2ec3qUYutgWeAzklro_0m4WJQ,91
110
- leadguru_jobs-0.675.0.dist-info/top_level.txt,sha256=rIuw1DqwbnZyeoarBSC-bYeGOhv9mZBs7_afl9q4_JI,9
111
- leadguru_jobs-0.675.0.dist-info/RECORD,,
108
+ leadguru_jobs-0.677.0.dist-info/METADATA,sha256=H0WEz6yGE6FDLLC0d-OtcUEyATrmjE6_2RvcAro0CyQ,1319
109
+ leadguru_jobs-0.677.0.dist-info/WHEEL,sha256=GV9aMThwP_4oNCtvEC2ec3qUYutgWeAzklro_0m4WJQ,91
110
+ leadguru_jobs-0.677.0.dist-info/top_level.txt,sha256=rIuw1DqwbnZyeoarBSC-bYeGOhv9mZBs7_afl9q4_JI,9
111
+ leadguru_jobs-0.677.0.dist-info/RECORD,,
Binary file
@@ -7,6 +7,7 @@ from lgt_jobs.lgt_common.slack_client.web_client import SlackWebClient
7
7
  from lgt_jobs.lgt_data.enums import SourceType
8
8
  from lgt_jobs.lgt_data.models.bots.dedicated_bot import Server, Channel, DedicatedBotModel
9
9
  from lgt_jobs.lgt_data.models.external.discord.user import DiscordUser
10
+ from lgt_jobs.lgt_data.models.user.user import UserModel
10
11
  from lgt_jobs.lgt_data.mongo_repository import (DedicatedBotRepository, UserMongoRepository, SlackContactUserRepository,
11
12
  LeadMongoRepository, UserLeadMongoRepository)
12
13
  from pydantic import BaseModel
@@ -131,23 +132,9 @@ class BotStatsUpdateJob(BaseBackgroundJob, ABC):
131
132
  else:
132
133
  log.warning(f"[BotStatsUpdateJob]: Error during update bot {bot.id} stats. Error: {channels_response}")
133
134
  return
135
+
134
136
  channels = channels_response['channels']
135
- connected_channels = 0
136
- channels_users = {}
137
- active_channels = {}
138
- for channel in channels:
139
- if channel['is_member']:
140
- active_channels[channel['id']] = channel['name']
141
- connected_channels += 1
142
- num_members = channel.get('num_members', 0)
143
- channels_users[channel['id']] = num_members
144
-
145
- bot.active_channels = active_channels
146
- bot.connected_channels = connected_channels
147
- bot.channels = len(channels)
148
- bot.channels_users = channels_users
149
- if bot.recent_messages is None:
150
- bot.recent_messages = []
137
+ channels_users = {channel['id']:channel.get('num_members', 0) for channel in channels}
151
138
  max_users_count = 0
152
139
  if bot.servers:
153
140
  channels = [Channel.from_dic(channel_dict) for channel_dict in channels]
@@ -165,12 +152,14 @@ class BotStatsUpdateJob(BaseBackgroundJob, ABC):
165
152
  bot.servers[0].messages_received = received_messages.get(bot.source.source_id, 0)
166
153
  bot.servers[0].messages_filtered = filtered_messages.get(bot.source.source_id, 0)
167
154
 
168
- # save only last 50 messages
169
- bot.recent_messages = bot.recent_messages[-50:]
170
155
  bots_rep.add_or_update(bot)
171
156
 
172
157
  @staticmethod
173
- def __updated_invalid_creds_flag(bot: DedicatedBotModel, invalid_creds: bool):
158
+ def __updated_invalid_creds_flag(bot: DedicatedBotModel, invalid_creds: bool, user: UserModel):
174
159
  if bot.invalid_creds != invalid_creds:
175
160
  bot.invalid_creds = invalid_creds
176
161
  DedicatedBotRepository().add_or_update(bot)
162
+ if not invalid_creds:
163
+ user.notification_settings.source_deactivation.need_to_notify = True
164
+ UserMongoRepository().set(user.id, notification_settings=user.notification_settings.to_dic())
165
+
@@ -219,9 +219,9 @@ class SourceDeactivationNotification(Notification):
219
219
  return 'Inactivation of Community on Leadguru'
220
220
 
221
221
  def get_notification_text(self, bots: list[DedicatedBotModel]):
222
- names = [bot.source.source_name.capitalize() for bot in bots]
222
+ names = [server.name for bot in bots for server in bot.servers]
223
223
  if self.type == NotificationType.INSTANTLY:
224
- return f'{bots[-1].source.source_name.capitalize()} became inactive on Leadguru.'
224
+ return f'{names[-1].capitalize()} became inactive on Leadguru.'
225
225
  elif (self.type == NotificationType.ONCE_A_DAY or self.type == NotificationType.ONCE_A_WEEK) and bots:
226
226
  match len(bots):
227
227
  case 1: