leadguru-jobs 0.455.0__tar.gz → 0.457.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.455.0 → leadguru_jobs-0.457.0}/PKG-INFO +1 -1
  2. {leadguru_jobs-0.455.0 → leadguru_jobs-0.457.0}/leadguru_jobs.egg-info/PKG-INFO +1 -1
  3. {leadguru_jobs-0.455.0 → leadguru_jobs-0.457.0}/lgt_jobs/jobs/send_slack_message.py +11 -2
  4. {leadguru_jobs-0.455.0 → leadguru_jobs-0.457.0}/lgt_jobs/lgt_data/model.py +2 -0
  5. {leadguru_jobs-0.455.0 → leadguru_jobs-0.457.0}/lgt_jobs/lgt_data/mongo_repository.py +5 -2
  6. {leadguru_jobs-0.455.0 → leadguru_jobs-0.457.0}/lgt_jobs/templates/new_message.html +1 -1
  7. {leadguru_jobs-0.455.0 → leadguru_jobs-0.457.0}/MANIFEST.in +0 -0
  8. {leadguru_jobs-0.455.0 → leadguru_jobs-0.457.0}/README.md +0 -0
  9. {leadguru_jobs-0.455.0 → leadguru_jobs-0.457.0}/leadguru_jobs.egg-info/SOURCES.txt +0 -0
  10. {leadguru_jobs-0.455.0 → leadguru_jobs-0.457.0}/leadguru_jobs.egg-info/dependency_links.txt +0 -0
  11. {leadguru_jobs-0.455.0 → leadguru_jobs-0.457.0}/leadguru_jobs.egg-info/not-zip-safe +0 -0
  12. {leadguru_jobs-0.455.0 → leadguru_jobs-0.457.0}/leadguru_jobs.egg-info/requires.txt +0 -0
  13. {leadguru_jobs-0.455.0 → leadguru_jobs-0.457.0}/leadguru_jobs.egg-info/top_level.txt +0 -0
  14. {leadguru_jobs-0.455.0 → leadguru_jobs-0.457.0}/lgt_jobs/__init__.py +0 -0
  15. {leadguru_jobs-0.455.0 → leadguru_jobs-0.457.0}/lgt_jobs/assets/images/arrow.png +0 -0
  16. {leadguru_jobs-0.455.0 → leadguru_jobs-0.457.0}/lgt_jobs/assets/images/firework.png +0 -0
  17. {leadguru_jobs-0.455.0 → leadguru_jobs-0.457.0}/lgt_jobs/assets/images/lock.png +0 -0
  18. {leadguru_jobs-0.455.0 → leadguru_jobs-0.457.0}/lgt_jobs/assets/images/logo.png +0 -0
  19. {leadguru_jobs-0.455.0 → leadguru_jobs-0.457.0}/lgt_jobs/assets/images/mail.png +0 -0
  20. {leadguru_jobs-0.455.0 → leadguru_jobs-0.457.0}/lgt_jobs/basejobs.py +0 -0
  21. {leadguru_jobs-0.455.0 → leadguru_jobs-0.457.0}/lgt_jobs/env.py +0 -0
  22. {leadguru_jobs-0.455.0 → leadguru_jobs-0.457.0}/lgt_jobs/jobs/__init__.py +0 -0
  23. {leadguru_jobs-0.455.0 → leadguru_jobs-0.457.0}/lgt_jobs/jobs/analytics.py +0 -0
  24. {leadguru_jobs-0.455.0 → leadguru_jobs-0.457.0}/lgt_jobs/jobs/archive_leads.py +0 -0
  25. {leadguru_jobs-0.455.0 → leadguru_jobs-0.457.0}/lgt_jobs/jobs/bot_stats_update.py +0 -0
  26. {leadguru_jobs-0.455.0 → leadguru_jobs-0.457.0}/lgt_jobs/jobs/chat_history.py +0 -0
  27. {leadguru_jobs-0.455.0 → leadguru_jobs-0.457.0}/lgt_jobs/jobs/inbox_leads.py +0 -0
  28. {leadguru_jobs-0.455.0 → leadguru_jobs-0.457.0}/lgt_jobs/jobs/mass_message.py +0 -0
  29. {leadguru_jobs-0.455.0 → leadguru_jobs-0.457.0}/lgt_jobs/jobs/send_code.py +0 -0
  30. {leadguru_jobs-0.455.0 → leadguru_jobs-0.457.0}/lgt_jobs/jobs/update_slack_profile.py +0 -0
  31. {leadguru_jobs-0.455.0 → leadguru_jobs-0.457.0}/lgt_jobs/jobs/user_balance_update.py +0 -0
  32. {leadguru_jobs-0.455.0 → leadguru_jobs-0.457.0}/lgt_jobs/jobs/workspace_connect.py +0 -0
  33. {leadguru_jobs-0.455.0 → leadguru_jobs-0.457.0}/lgt_jobs/lgt_common/__init__.py +0 -0
  34. {leadguru_jobs-0.455.0 → leadguru_jobs-0.457.0}/lgt_jobs/lgt_common/discord_client/__init__.py +0 -0
  35. {leadguru_jobs-0.455.0 → leadguru_jobs-0.457.0}/lgt_jobs/lgt_common/discord_client/discord_client.py +0 -0
  36. {leadguru_jobs-0.455.0 → leadguru_jobs-0.457.0}/lgt_jobs/lgt_common/discord_client/methods.py +0 -0
  37. {leadguru_jobs-0.455.0 → leadguru_jobs-0.457.0}/lgt_jobs/lgt_common/enums/__init__.py +0 -0
  38. {leadguru_jobs-0.455.0 → leadguru_jobs-0.457.0}/lgt_jobs/lgt_common/enums/slack_errors.py +0 -0
  39. {leadguru_jobs-0.455.0 → leadguru_jobs-0.457.0}/lgt_jobs/lgt_common/helpers.py +0 -0
  40. {leadguru_jobs-0.455.0 → leadguru_jobs-0.457.0}/lgt_jobs/lgt_common/lgt_logging.py +0 -0
  41. {leadguru_jobs-0.455.0 → leadguru_jobs-0.457.0}/lgt_jobs/lgt_common/pubsub/__init__.py +0 -0
  42. {leadguru_jobs-0.455.0 → leadguru_jobs-0.457.0}/lgt_jobs/lgt_common/pubsub/command.py +0 -0
  43. {leadguru_jobs-0.455.0 → leadguru_jobs-0.457.0}/lgt_jobs/lgt_common/pubsub/messages.py +0 -0
  44. {leadguru_jobs-0.455.0 → leadguru_jobs-0.457.0}/lgt_jobs/lgt_common/pubsub/pubsubfactory.py +0 -0
  45. {leadguru_jobs-0.455.0 → leadguru_jobs-0.457.0}/lgt_jobs/lgt_common/slack_client/__init__.py +0 -0
  46. {leadguru_jobs-0.455.0 → leadguru_jobs-0.457.0}/lgt_jobs/lgt_common/slack_client/methods.py +0 -0
  47. {leadguru_jobs-0.455.0 → leadguru_jobs-0.457.0}/lgt_jobs/lgt_common/slack_client/slack_client.py +0 -0
  48. {leadguru_jobs-0.455.0 → leadguru_jobs-0.457.0}/lgt_jobs/lgt_common/slack_client/web_client.py +0 -0
  49. {leadguru_jobs-0.455.0 → leadguru_jobs-0.457.0}/lgt_jobs/lgt_data/__init__.py +0 -0
  50. {leadguru_jobs-0.455.0 → leadguru_jobs-0.457.0}/lgt_jobs/lgt_data/analytics.py +0 -0
  51. {leadguru_jobs-0.455.0 → leadguru_jobs-0.457.0}/lgt_jobs/lgt_data/engine.py +0 -0
  52. {leadguru_jobs-0.455.0 → leadguru_jobs-0.457.0}/lgt_jobs/lgt_data/enums.py +0 -0
  53. {leadguru_jobs-0.455.0 → leadguru_jobs-0.457.0}/lgt_jobs/lgt_data/helpers.py +0 -0
  54. {leadguru_jobs-0.455.0 → leadguru_jobs-0.457.0}/lgt_jobs/main.py +0 -0
  55. {leadguru_jobs-0.455.0 → leadguru_jobs-0.457.0}/lgt_jobs/runner.py +0 -0
  56. {leadguru_jobs-0.455.0 → leadguru_jobs-0.457.0}/lgt_jobs/services/__init__.py +0 -0
  57. {leadguru_jobs-0.455.0 → leadguru_jobs-0.457.0}/lgt_jobs/services/web_client.py +0 -0
  58. {leadguru_jobs-0.455.0 → leadguru_jobs-0.457.0}/lgt_jobs/simple_job.py +0 -0
  59. {leadguru_jobs-0.455.0 → leadguru_jobs-0.457.0}/lgt_jobs/smtp.py +0 -0
  60. {leadguru_jobs-0.455.0 → leadguru_jobs-0.457.0}/setup.cfg +0 -0
  61. {leadguru_jobs-0.455.0 → leadguru_jobs-0.457.0}/setup.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: leadguru_jobs
3
- Version: 0.455.0
3
+ Version: 0.457.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.455.0
3
+ Version: 0.457.0
4
4
  Summary: LGT jobs builds
5
5
  Author-email: developer@leadguru.co
6
6
  Classifier: Development Status :: 5 - Production/Stable
@@ -1,8 +1,9 @@
1
+ import datetime
1
2
  from abc import ABC
2
3
  from typing import Optional
3
4
  from lgt_jobs.lgt_common.lgt_logging import log
4
5
  from lgt_jobs.lgt_common.slack_client.web_client import SlackWebClient
5
- from lgt_jobs.lgt_data.mongo_repository import UserLeadMongoRepository, DedicatedBotRepository
6
+ from lgt_jobs.lgt_data.mongo_repository import UserLeadMongoRepository, DedicatedBotRepository, UserContactsRepository
6
7
  from pydantic import BaseModel
7
8
  from ..basejobs import BaseBackgroundJobData, BaseBackgroundJob
8
9
 
@@ -14,6 +15,7 @@ Send Slack Message
14
15
  class SendSlackMessageJobData(BaseBackgroundJobData, BaseModel):
15
16
  lead_id: str
16
17
  user_id: str
18
+ bot_id: str
17
19
  text: Optional[str]
18
20
  files_ids: Optional[list]
19
21
 
@@ -29,10 +31,17 @@ class SendSlackMessageJob(BaseBackgroundJob, ABC):
29
31
  if not lead:
30
32
  return
31
33
 
32
- bot = DedicatedBotRepository().get_one(user_id=data.user_id, source_id=data.source_id, only_valid=True)
34
+ bot = DedicatedBotRepository().get_one(id=data.bot_id)
33
35
  if not bot:
34
36
  return
35
37
 
38
+ user_contacts_repository = UserContactsRepository()
39
+ uc = user_contacts_repository.find_one(data.user_id, sender_id=lead.message.sender_id,
40
+ source_id=bot.source.source_id)
41
+ uc.scheduled_messages = [message.to_dic() for message in uc.scheduled_messages
42
+ if message.post_at < datetime.datetime.now(datetime.UTC)]
43
+ user_contacts_repository.update(data.user_id, uc.sender_id, bot.source.source_id,
44
+ scheduled_messages=uc.scheduled_messages)
36
45
  slack_client = SlackWebClient(bot.token, bot.cookies)
37
46
  resp = slack_client.im_open(lead.message.sender_id)
38
47
  if not resp['ok']:
@@ -521,6 +521,8 @@ class BotInfo:
521
521
  self.banned: bool | None = False
522
522
  self.user_name: str = ''
523
523
  self.associated_user: str | None = ''
524
+ self.deleted: bool = False
525
+ self.two_factor_required = False
524
526
 
525
527
  @classmethod
526
528
  def from_dic(cls, dic: dict):
@@ -1037,14 +1037,17 @@ class UserContactsRepository(BaseMongoRepository):
1037
1037
  pipeline = {'user_id': to_object_id(user_id)}
1038
1038
 
1039
1039
  sender_id = kwargs.get('sender_id')
1040
+ source_id = kwargs.get('source_id')
1040
1041
  if sender_id:
1041
1042
  pipeline['sender_id'] = sender_id
1043
+ if source_id:
1044
+ pipeline['source_id'] = source_id
1042
1045
 
1043
1046
  if contact_instance := self.collection().find_one(pipeline):
1044
1047
  return UserContact.from_dic(contact_instance)
1045
1048
 
1046
- def update(self, user_id: str, sender_id: str, **kwargs):
1047
- pipeline = {'user_id': to_object_id(user_id), 'sender_id': sender_id}
1049
+ def update(self, user_id: str, sender_id: str, source_id: str, **kwargs):
1050
+ pipeline = {'user_id': to_object_id(user_id), 'sender_id': sender_id, 'source_id': source_id}
1048
1051
  update_dict = {k: v for k, v in kwargs.items() if v is not None}
1049
1052
  self.collection().update_one(pipeline, {'$set': update_dict}, upsert=False)
1050
1053
 
@@ -12,7 +12,7 @@
12
12
  <tr>
13
13
  <td style="padding: 0; margin: 0;">
14
14
  <table border="0" cellpadding="0" cellspacing="0"
15
- style="margin: 0 auto; border: 0; width: 100%; max-width: 420px; padding: 16px 0;">
15
+ style="margin: 16px auto; border: 0; width: 100%; max-width: 420px; padding: 0;">
16
16
  <tr>
17
17
  <td>
18
18
  <table border="0" cellpadding="0" cellspacing="0"