leadguru-jobs 0.163.0__tar.gz → 0.165.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 (41) hide show
  1. {leadguru_jobs-0.163.0 → leadguru_jobs-0.165.0}/PKG-INFO +1 -1
  2. {leadguru_jobs-0.163.0 → leadguru_jobs-0.165.0}/leadguru_jobs.egg-info/PKG-INFO +1 -1
  3. leadguru_jobs-0.165.0/leadguru_jobs.egg-info/requires.txt +5 -0
  4. {leadguru_jobs-0.163.0 → leadguru_jobs-0.165.0}/lgt_jobs/jobs/bot_stats_update.py +5 -1
  5. {leadguru_jobs-0.163.0 → leadguru_jobs-0.165.0}/lgt_jobs/jobs/conversation_replied.py +16 -7
  6. {leadguru_jobs-0.163.0 → leadguru_jobs-0.165.0}/lgt_jobs/jobs/reactions_added.py +14 -6
  7. leadguru_jobs-0.163.0/leadguru_jobs.egg-info/requires.txt +0 -5
  8. {leadguru_jobs-0.163.0 → leadguru_jobs-0.165.0}/MANIFEST.in +0 -0
  9. {leadguru_jobs-0.163.0 → leadguru_jobs-0.165.0}/README.md +0 -0
  10. {leadguru_jobs-0.163.0 → leadguru_jobs-0.165.0}/leadguru_jobs.egg-info/SOURCES.txt +0 -0
  11. {leadguru_jobs-0.163.0 → leadguru_jobs-0.165.0}/leadguru_jobs.egg-info/dependency_links.txt +0 -0
  12. {leadguru_jobs-0.163.0 → leadguru_jobs-0.165.0}/leadguru_jobs.egg-info/not-zip-safe +0 -0
  13. {leadguru_jobs-0.163.0 → leadguru_jobs-0.165.0}/leadguru_jobs.egg-info/top_level.txt +0 -0
  14. {leadguru_jobs-0.163.0 → leadguru_jobs-0.165.0}/lgt_jobs/__init__.py +0 -0
  15. {leadguru_jobs-0.163.0 → leadguru_jobs-0.165.0}/lgt_jobs/basejobs.py +0 -0
  16. {leadguru_jobs-0.163.0 → leadguru_jobs-0.165.0}/lgt_jobs/env.py +0 -0
  17. {leadguru_jobs-0.163.0 → leadguru_jobs-0.165.0}/lgt_jobs/jobs/__init__.py +0 -0
  18. {leadguru_jobs-0.163.0 → leadguru_jobs-0.165.0}/lgt_jobs/jobs/analytics.py +0 -0
  19. {leadguru_jobs-0.163.0 → leadguru_jobs-0.165.0}/lgt_jobs/jobs/archive_leads.py +0 -0
  20. {leadguru_jobs-0.163.0 → leadguru_jobs-0.165.0}/lgt_jobs/jobs/chat_history.py +0 -0
  21. {leadguru_jobs-0.163.0 → leadguru_jobs-0.165.0}/lgt_jobs/jobs/clear_user_analytics.py +0 -0
  22. {leadguru_jobs-0.163.0 → leadguru_jobs-0.165.0}/lgt_jobs/jobs/connected_workspaces.py +0 -0
  23. {leadguru_jobs-0.163.0 → leadguru_jobs-0.165.0}/lgt_jobs/jobs/reindex_conversation_history.py +0 -0
  24. {leadguru_jobs-0.163.0 → leadguru_jobs-0.165.0}/lgt_jobs/jobs/restart_bots.py +0 -0
  25. {leadguru_jobs-0.163.0 → leadguru_jobs-0.165.0}/lgt_jobs/jobs/restart_dedicated_bots.py +0 -0
  26. {leadguru_jobs-0.163.0 → leadguru_jobs-0.165.0}/lgt_jobs/jobs/send_slack_message.py +0 -0
  27. {leadguru_jobs-0.163.0 → leadguru_jobs-0.165.0}/lgt_jobs/jobs/update_slack_profile.py +0 -0
  28. {leadguru_jobs-0.163.0 → leadguru_jobs-0.165.0}/lgt_jobs/jobs/user_balance_update.py +0 -0
  29. {leadguru_jobs-0.163.0 → leadguru_jobs-0.165.0}/lgt_jobs/jobs/user_feed_update.py +0 -0
  30. {leadguru_jobs-0.163.0 → leadguru_jobs-0.165.0}/lgt_jobs/jobs/user_limits_update.py +0 -0
  31. {leadguru_jobs-0.163.0 → leadguru_jobs-0.165.0}/lgt_jobs/k8client.py +0 -0
  32. {leadguru_jobs-0.163.0 → leadguru_jobs-0.165.0}/lgt_jobs/main.py +0 -0
  33. {leadguru_jobs-0.163.0 → leadguru_jobs-0.165.0}/lgt_jobs/runner.py +0 -0
  34. {leadguru_jobs-0.163.0 → leadguru_jobs-0.165.0}/lgt_jobs/simple_job.py +0 -0
  35. {leadguru_jobs-0.163.0 → leadguru_jobs-0.165.0}/lgt_jobs/smtp.py +0 -0
  36. {leadguru_jobs-0.163.0 → leadguru_jobs-0.165.0}/lgt_jobs/templates/bots_service_template.yaml +0 -0
  37. {leadguru_jobs-0.163.0 → leadguru_jobs-0.165.0}/lgt_jobs/templates/new_message_mail_template.html +0 -0
  38. {leadguru_jobs-0.163.0 → leadguru_jobs-0.165.0}/setup.cfg +0 -0
  39. {leadguru_jobs-0.163.0 → leadguru_jobs-0.165.0}/setup.py +0 -0
  40. {leadguru_jobs-0.163.0 → leadguru_jobs-0.165.0}/tests/__init__.py +0 -0
  41. {leadguru_jobs-0.163.0 → leadguru_jobs-0.165.0}/tests/job_data_test.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: leadguru_jobs
3
- Version: 0.163.0
3
+ Version: 0.165.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.163.0
3
+ Version: 0.165.0
4
4
  Summary: LGT jobs builds
5
5
  Author-email: developer@leadguru.co
6
6
  Classifier: Development Status :: 5 - Production/Stable
@@ -0,0 +1,5 @@
1
+ loguru
2
+ pydantic
3
+ cachetools>=3.1.0
4
+ leadguru-common>=0.266.0
5
+ leadguru-data>=0.273.0
@@ -46,13 +46,17 @@ class BotStatsUpdateJob(BaseBackgroundJob, ABC):
46
46
 
47
47
  connected_channels = 0
48
48
  channels_users = {}
49
+ active_channels = {}
49
50
  users_count = 0
50
51
  for channel in channels:
51
- connected_channels += 1 if channel['is_member'] else 0
52
+ if channel['is_member']:
53
+ active_channels[channel['id']] = channel['name']
54
+ connected_channels += 1
52
55
  num_members = channel.get('num_members', 0)
53
56
  channels_users[channel['id']] = num_members
54
57
  users_count += num_members
55
58
 
59
+ bot.active_channels = active_channels
56
60
  bot.messages_received = received_messages.get(bot.name, 0)
57
61
  bot.messages_filtered = filtered_messages.get(bot.name, 0)
58
62
  bot.connected_channels = connected_channels
@@ -1,11 +1,12 @@
1
1
  from abc import ABC
2
+ from typing import Optional
2
3
 
3
4
  from lgt.common.python.lgt_logging import log
4
5
  from lgt.common.python.slack_client.slack_client import SlackClient
5
6
  from lgt.common.python.slack_client.web_client import get_system_slack_credentials, SlackWebClient
6
7
  from pydantic import BaseModel
7
8
  from lgt_data.mongo_repository import LeadMongoRepository, BotMongoRepository, \
8
- UserLeadMongoRepository
9
+ UserLeadMongoRepository, GarbageLeadsMongoRepository, SpamLeadsMongoRepository
9
10
  from lgt_data.model import SlackReplyModel
10
11
  from ..basejobs import BaseBackgroundJobData, BaseBackgroundJob
11
12
 
@@ -15,7 +16,8 @@ Update messages conversations
15
16
 
16
17
 
17
18
  class ConversationRepliedJobData(BaseBackgroundJobData, BaseModel):
18
- message_id: str
19
+ channel_id: Optional[str]
20
+ message_id: Optional[str]
19
21
  ts: str
20
22
 
21
23
 
@@ -26,7 +28,7 @@ class ConversationRepliedJob(BaseBackgroundJob, ABC):
26
28
 
27
29
  def exec(self, data: ConversationRepliedJobData):
28
30
  bots = BotMongoRepository().get()
29
- lead = LeadMongoRepository().get_by_message_id(data.message_id)
31
+ lead = LeadMongoRepository().get(timestamp=data.ts, message_id=data.message_id, channel_id=data.channel_id)
30
32
  if not lead:
31
33
  return
32
34
 
@@ -54,12 +56,19 @@ class ConversationRepliedJob(BaseBackgroundJob, ABC):
54
56
  reply.username = user_response.get("user").get("real_name")
55
57
  if not reply.attachments and lead.message.urls_in_message:
56
58
  for attachment in lead.message.urls_in_message:
57
- reply.attachments.append = client.get_attachments(
58
- lead.message.channel_id, lead.message.message_id, attachment)
59
+ reply.attachments.append(client.get_attachments(
60
+ lead.message.channel_id, lead.message.message_id, attachment))
59
61
  replies.append(reply.to_dic())
60
62
 
61
63
  set_dict = {
62
64
  "replies": replies,
63
65
  }
64
- LeadMongoRepository().collection().update_many({"message_id": data.message_id}, {"$set": set_dict})
65
- UserLeadMongoRepository().collection().update_many({"message_id": data.message_id}, {"$set": set_dict})
66
+ pipeline = {"message.timestamp": data.ts}
67
+ if data.message_id:
68
+ pipeline['message.message_id'] = data.message_id
69
+ if data.channel_id:
70
+ pipeline['message.channel_id'] = data.channel_id
71
+ LeadMongoRepository().collection().update_many(pipeline, {"$set": set_dict})
72
+ UserLeadMongoRepository().collection().update_many(pipeline, {"$set": set_dict})
73
+ GarbageLeadsMongoRepository().collection().update_many(pipeline, {"$set": set_dict})
74
+ SpamLeadsMongoRepository().collection().update_many(pipeline, {"$set": set_dict})
@@ -1,11 +1,11 @@
1
1
  from abc import ABC
2
+ from typing import Optional
2
3
 
3
4
  from lgt.common.python.lgt_logging import log
4
5
  from lgt.common.python.slack_client.web_client import SlackWebClient, get_system_slack_credentials
5
6
  from lgt_data.mongo_repository import LeadMongoRepository, BotMongoRepository, \
6
- UserLeadMongoRepository
7
+ UserLeadMongoRepository, GarbageLeadsMongoRepository, SpamLeadsMongoRepository
7
8
  from pydantic import BaseModel
8
-
9
9
  from ..basejobs import BaseBackgroundJobData, BaseBackgroundJob
10
10
 
11
11
  """
@@ -14,7 +14,8 @@ Update messages reactions
14
14
 
15
15
 
16
16
  class ReactionAddedJobData(BaseBackgroundJobData, BaseModel):
17
- message_id: str
17
+ channel_id: Optional[str]
18
+ message_id: Optional[str]
18
19
  ts: str
19
20
 
20
21
 
@@ -27,7 +28,7 @@ class ReactionAddedJob(BaseBackgroundJob, ABC):
27
28
  bots = BotMongoRepository().get()
28
29
  like_name = '+1'
29
30
 
30
- lead = LeadMongoRepository().get_by_message_id(data.message_id)
31
+ lead = LeadMongoRepository().get(timestamp=data.ts, message_id=data.message_id, channel_id=data.channel_id)
31
32
  if not lead:
32
33
  return
33
34
 
@@ -60,5 +61,12 @@ class ReactionAddedJob(BaseBackgroundJob, ABC):
60
61
  "likes": lead.likes,
61
62
  "reactions": lead.reactions
62
63
  }
63
- LeadMongoRepository().collection().update_many({"message_id": data.message_id}, {"$set": _set})
64
- UserLeadMongoRepository().collection().update_many({"message_id": data.message_id}, {"$set": _set})
64
+ pipeline = {"message.timestamp": data.ts}
65
+ if data.message_id:
66
+ pipeline['message.message_id'] = data.message_id
67
+ if data.channel_id:
68
+ pipeline['message.channel_id'] = data.channel_id
69
+ LeadMongoRepository().collection().update_many(pipeline, {"$set": _set})
70
+ UserLeadMongoRepository().collection().update_many(pipeline, {"$set": _set})
71
+ GarbageLeadsMongoRepository().collection().update_many(pipeline, {"$set": _set})
72
+ SpamLeadsMongoRepository().collection().update_many(pipeline, {"$set": _set})
@@ -1,5 +0,0 @@
1
- loguru
2
- pydantic
3
- cachetools>=3.1.0
4
- leadguru-common>=0.263.0
5
- leadguru-data>=0.270.0