leadguru-jobs 0.638.0__py3-none-any.whl → 0.639.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.
- {leadguru_jobs-0.638.0.dist-info → leadguru_jobs-0.639.0.dist-info}/METADATA +1 -1
- {leadguru_jobs-0.638.0.dist-info → leadguru_jobs-0.639.0.dist-info}/RECORD +17 -18
- lgt_jobs/jobs/bot_stats_update.py +2 -10
- lgt_jobs/jobs/chat_history.py +3 -6
- lgt_jobs/jobs/connect_sources.py +4 -1
- lgt_jobs/jobs/inbox_leads.py +6 -2
- lgt_jobs/jobs/load_slack_people.py +2 -1
- lgt_jobs/jobs/send_slack_message.py +1 -1
- lgt_jobs/jobs/update_slack_profile.py +2 -1
- lgt_jobs/jobs/workspace_connect.py +3 -1
- lgt_jobs/lgt_data/model.py +0 -1136
- lgt_jobs/lgt_data/models/base.py +29 -0
- lgt_jobs/lgt_data/mongo_repository.py +225 -45
- lgt_jobs/runner.py +2 -2
- lgt_jobs/simple_job.py +1 -1
- lgt_jobs/lgt_common/lgt_logging.py +0 -15
- lgt_jobs/lgt_data/models/message_request.py +0 -14
- {leadguru_jobs-0.638.0.dist-info → leadguru_jobs-0.639.0.dist-info}/WHEEL +0 -0
- {leadguru_jobs-0.638.0.dist-info → leadguru_jobs-0.639.0.dist-info}/top_level.txt +0 -0
@@ -2,8 +2,8 @@ lgt_jobs/__init__.py,sha256=efDX0VsSwC2we92quUu8E62MqC-4audo0Rv37Y6USnk,2144
|
|
2
2
|
lgt_jobs/basejobs.py,sha256=LPEclvY6fIG17YMGy9pRK0Q58n62gkI5W1BTK6R2p-c,1234
|
3
3
|
lgt_jobs/env.py,sha256=cRO03GGvstUjBsv3uYO-iakrOvAk_ZWUP_fnmf21iZQ,789
|
4
4
|
lgt_jobs/main.py,sha256=cK_nkBtJHnUNDbba1WZotqPtI_6OWxiYQkAgco9OAmE,1539
|
5
|
-
lgt_jobs/runner.py,sha256=
|
6
|
-
lgt_jobs/simple_job.py,sha256=
|
5
|
+
lgt_jobs/runner.py,sha256=pS-Qwyfuk22aQ1Mk3p-Q0ysdZfKy1Bh9YoWBlDaLeM8,2234
|
6
|
+
lgt_jobs/simple_job.py,sha256=EBxhre3749GEAzJyaV1GXYy3P0pzwHchxcZ2kSN1vWU,527
|
7
7
|
lgt_jobs/smtp.py,sha256=k0qh-Qk9AeSU3WrCOVmuWkfpi9xzwaPMzbw9cED-pZw,1150
|
8
8
|
lgt_jobs/assets/images/arrow.png,sha256=Lr_zG1TyySAWX78jiojcV7j8BHe2S_Oi7eZYAfe4YbM,536
|
9
9
|
lgt_jobs/assets/images/firework.png,sha256=9d_0lUpDFfT3e4JTgp5XVb03qAdtO9yNVi1c1KoQDp8,33754
|
@@ -12,19 +12,18 @@ 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=
|
16
|
-
lgt_jobs/jobs/chat_history.py,sha256=
|
17
|
-
lgt_jobs/jobs/connect_sources.py,sha256=
|
18
|
-
lgt_jobs/jobs/inbox_leads.py,sha256=
|
19
|
-
lgt_jobs/jobs/load_slack_people.py,sha256=
|
15
|
+
lgt_jobs/jobs/bot_stats_update.py,sha256=COwSaw0conDZOcdI5VkyW4vTFIo6PFn9LgvhTejYYeQ,8448
|
16
|
+
lgt_jobs/jobs/chat_history.py,sha256=rj337uHT2XmyDu3oMPbnCBxSsRn4roxDNS0hsbvoI7I,5040
|
17
|
+
lgt_jobs/jobs/connect_sources.py,sha256=vOKu2Q9cmQsj4VMVzOoEJkD1wzE9XurbIChx35rES8I,4957
|
18
|
+
lgt_jobs/jobs/inbox_leads.py,sha256=6UhPp9AfSAGb3elFDT6jm7j2HZ9jPOPngsUj-hUKAYw,4867
|
19
|
+
lgt_jobs/jobs/load_slack_people.py,sha256=JEggnsWvfA7L45lObwuBFIvBVhwfePbq08E89VXpI8E,3264
|
20
20
|
lgt_jobs/jobs/mass_message.py,sha256=1mFcBlL2MhzLbj5yrd_NyJc7TXDWCcROAzGDnr0miMU,2035
|
21
21
|
lgt_jobs/jobs/send_code.py,sha256=dIlLPkG3GgGKIEqGiElyzrtdrnJNTL1Ak2V0xnE-WIQ,824
|
22
|
-
lgt_jobs/jobs/send_slack_message.py,sha256=
|
23
|
-
lgt_jobs/jobs/update_slack_profile.py,sha256=
|
24
|
-
lgt_jobs/jobs/workspace_connect.py,sha256=
|
22
|
+
lgt_jobs/jobs/send_slack_message.py,sha256=yJVzGQijM5KL-QDA0EQy-8-kvR7TSZmRw-4tX1ge5Hk,2343
|
23
|
+
lgt_jobs/jobs/update_slack_profile.py,sha256=GU28azaNz1zYsCAAF_BShJxLUecQb7AbO5XPgiv7yHg,3654
|
24
|
+
lgt_jobs/jobs/workspace_connect.py,sha256=iapbDVdFL6ZkZJlIZywASATAmK25ZikSd1IiB1LLrRo,7203
|
25
25
|
lgt_jobs/lgt_common/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
26
26
|
lgt_jobs/lgt_common/helpers.py,sha256=3T47_Abw7datSIxVqIHTCB-sh-rnahWrmrFG8sSY9ZE,178
|
27
|
-
lgt_jobs/lgt_common/lgt_logging.py,sha256=Zxr2sPpY-qU_YbL_47OM6dE_JA1ejG_Vr1PNnjF_jwo,576
|
28
27
|
lgt_jobs/lgt_common/discord_client/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
29
28
|
lgt_jobs/lgt_common/discord_client/discord_client.py,sha256=IA5JgoZq-oowkEGLRReZbW4Wa7cTtdSTPfGKF6ymNm8,4067
|
30
29
|
lgt_jobs/lgt_common/discord_client/methods.py,sha256=qFbNRsI1VlPZD2os5d4bdZhrnu69OW__fhMRssF0oMk,633
|
@@ -42,14 +41,14 @@ lgt_jobs/lgt_data/analytics.py,sha256=yfrFPXrBofzZqUNn479JkrbZXDa2ljgk-Le0YrQ9re
|
|
42
41
|
lgt_jobs/lgt_data/engine.py,sha256=GY8FOl3dl7euKjQRML_H3ophaSTgfQ8ICMRv1NpE2oE,7745
|
43
42
|
lgt_jobs/lgt_data/enums.py,sha256=27Gd_o5QVCrSUMIfL0DJ72xV77T9fK0kYrOaC78O0SU,2292
|
44
43
|
lgt_jobs/lgt_data/helpers.py,sha256=S_1P7pnx14dllmen-TzjA9pkKWQr39x8-v6iv7FUYnQ,423
|
45
|
-
lgt_jobs/lgt_data/model.py,sha256=
|
46
|
-
lgt_jobs/lgt_data/mongo_repository.py,sha256=
|
44
|
+
lgt_jobs/lgt_data/model.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
45
|
+
lgt_jobs/lgt_data/mongo_repository.py,sha256=FBhE2nhrQ42njW9Muf3DZElJRva5IiZ_f-XmEQwgzrc,54209
|
47
46
|
lgt_jobs/lgt_data/models/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
48
|
-
lgt_jobs/lgt_data/models/
|
47
|
+
lgt_jobs/lgt_data/models/base.py,sha256=YaiceCaaF45snOLx-bQoYJ1aTWrfgMQeHWjAaRnzGKE,592
|
49
48
|
lgt_jobs/services/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
50
49
|
lgt_jobs/services/web_client.py,sha256=oMyWJxwGeIe3f40fPT7xcisjDg3BhA3Ipf8dr1jVT-Y,1549
|
51
50
|
lgt_jobs/templates/new_message.html,sha256=dZl8UmdAOOMq4nidvAgMFroSrTV7Pw0RWt2yLp_2idg,6989
|
52
|
-
leadguru_jobs-0.
|
53
|
-
leadguru_jobs-0.
|
54
|
-
leadguru_jobs-0.
|
55
|
-
leadguru_jobs-0.
|
51
|
+
leadguru_jobs-0.639.0.dist-info/METADATA,sha256=MAx8qvGobve7qzMmzciWlx-I0WGlZLzOlBNdJ8z_5ac,1319
|
52
|
+
leadguru_jobs-0.639.0.dist-info/WHEEL,sha256=R0nc6qTxuoLk7ShA2_Y-UWkN8ZdfDBG2B6Eqpz2WXbs,91
|
53
|
+
leadguru_jobs-0.639.0.dist-info/top_level.txt,sha256=rIuw1DqwbnZyeoarBSC-bYeGOhv9mZBs7_afl9q4_JI,9
|
54
|
+
leadguru_jobs-0.639.0.dist-info/RECORD,,
|
@@ -1,12 +1,12 @@
|
|
1
1
|
import random
|
2
2
|
import time
|
3
3
|
from abc import ABC
|
4
|
-
from datetime import datetime, UTC, timedelta
|
5
4
|
from typing import Optional
|
6
5
|
from lgt_jobs.lgt_common.discord_client.discord_client import DiscordClient
|
7
6
|
from lgt_jobs.lgt_common.slack_client.web_client import SlackWebClient
|
8
7
|
from lgt_jobs.lgt_data.enums import SourceType
|
9
|
-
from lgt_jobs.lgt_data.
|
8
|
+
from lgt_jobs.lgt_data.models.bots.dedicated_bot import Server, Channel, DedicatedBotModel
|
9
|
+
from lgt_jobs.lgt_data.models.external.discord.user import DiscordUser
|
10
10
|
from lgt_jobs.lgt_data.mongo_repository import (DedicatedBotRepository, UserMongoRepository, SlackContactUserRepository,
|
11
11
|
LeadMongoRepository, UserLeadMongoRepository)
|
12
12
|
from pydantic import BaseModel
|
@@ -33,15 +33,7 @@ class BotStatsUpdateJob(BaseBackgroundJob, ABC):
|
|
33
33
|
bots_rep = DedicatedBotRepository()
|
34
34
|
users_rep = UserMongoRepository()
|
35
35
|
bot = bots_rep.get_one(id=data.bot_id, include_deleted=True)
|
36
|
-
|
37
36
|
user = users_rep.get(bot.user_id)
|
38
|
-
if user.subscription_expired_at.replace(tzinfo=UTC) < (datetime.now(UTC) - timedelta(7)):
|
39
|
-
bot.deleted = True
|
40
|
-
for server in bot.servers:
|
41
|
-
server.deleted = True
|
42
|
-
bots_rep.add_or_update(bot)
|
43
|
-
return
|
44
|
-
|
45
37
|
received_messages, filtered_messages = get_bots_aggregated_analytics(bot_ids=[str(bot.id)])
|
46
38
|
|
47
39
|
if bot.source.source_type == SourceType.DISCORD:
|
lgt_jobs/jobs/chat_history.py
CHANGED
@@ -3,7 +3,9 @@ from abc import ABC
|
|
3
3
|
from typing import Optional, List
|
4
4
|
import logging as log
|
5
5
|
from lgt_jobs.lgt_common.slack_client.web_client import SlackWebClient
|
6
|
-
from lgt_jobs.lgt_data.
|
6
|
+
from lgt_jobs.lgt_data.models.bots.dedicated_bot import DedicatedBotModel
|
7
|
+
from lgt_jobs.lgt_data.models.chat.message import ChatMessage
|
8
|
+
from lgt_jobs.lgt_data.models.contacts.contact import UserContact
|
7
9
|
from lgt_jobs.lgt_data.mongo_repository import UserMongoRepository, DedicatedBotRepository, UserContactsRepository, \
|
8
10
|
ChatRepository, UserLeadMongoRepository
|
9
11
|
from pydantic import BaseModel
|
@@ -39,7 +41,6 @@ class LoadChatHistoryJob(BaseBackgroundJob, ABC):
|
|
39
41
|
return
|
40
42
|
last_message = None
|
41
43
|
last_message_contact = None
|
42
|
-
last_message_bot = None
|
43
44
|
contacts_groups = self.contacts_repo.find_grouped_actual_contacts(user.id, spam=False, with_chat_only=False)
|
44
45
|
for bot in bots:
|
45
46
|
contacts = contacts_groups.get(bot.source.source_id)
|
@@ -54,12 +55,10 @@ class LoadChatHistoryJob(BaseBackgroundJob, ABC):
|
|
54
55
|
continue
|
55
56
|
|
56
57
|
if not last_message:
|
57
|
-
last_message_bot = bot
|
58
58
|
last_message = message
|
59
59
|
last_message_contact = contact
|
60
60
|
|
61
61
|
if message.created_at > last_message.created_at and message.user == contact.sender_id:
|
62
|
-
last_message_bot = bot
|
63
62
|
last_message = message
|
64
63
|
last_message_contact = contact
|
65
64
|
|
@@ -67,8 +66,6 @@ class LoadChatHistoryJob(BaseBackgroundJob, ABC):
|
|
67
66
|
has_to_be_notified = (not last_notification or (last_message and last_message.created_at > last_notification))
|
68
67
|
if last_message and has_to_be_notified and last_message.user == last_message_contact.sender_id:
|
69
68
|
user.notification_settings.incoming_messages.need_to_notify = True
|
70
|
-
user.notification_settings.incoming_messages.attributes = [last_message_contact.sender_id,
|
71
|
-
last_message_bot.source.source_id]
|
72
69
|
UserMongoRepository().set(data.user_id, notification_settings=user.notification_settings.to_dic())
|
73
70
|
|
74
71
|
def _get_new_messages(self, contact: UserContact, bot: DedicatedBotModel, slack_chat: List[ChatMessage]):
|
lgt_jobs/jobs/connect_sources.py
CHANGED
@@ -5,10 +5,13 @@ import logging as log
|
|
5
5
|
from lgt_jobs.jobs.load_slack_people import LoadSlackPeopleJob, LoadSlackPeopleJobData
|
6
6
|
from lgt_jobs.basejobs import BaseBackgroundJob, BaseBackgroundJobData
|
7
7
|
from lgt_jobs.jobs.bot_stats_update import BotStatsUpdateJob, BotStatsUpdateJobData
|
8
|
+
from lgt_jobs.lgt_data.models.base import BaseModel
|
9
|
+
from lgt_jobs.lgt_data.models.bots.base_bot import Source
|
10
|
+
from lgt_jobs.lgt_data.models.bots.dedicated_bot import DedicatedBotModel, Server
|
11
|
+
from lgt_jobs.lgt_data.models.external.slack.user import SlackUser
|
8
12
|
from lgt_jobs.runner import BackgroundJobRunner
|
9
13
|
from lgt_jobs.lgt_data.engine import UserTrackAction
|
10
14
|
from lgt_jobs.lgt_data.enums import SourceType, UserAction, StatusConnection
|
11
|
-
from lgt_jobs.lgt_data.model import BaseModel, DedicatedBotModel, Server, Source, SlackUser
|
12
15
|
from lgt_jobs.lgt_data.mongo_repository import DedicatedBotRepository, UserMongoRepository
|
13
16
|
|
14
17
|
|
lgt_jobs/jobs/inbox_leads.py
CHANGED
@@ -1,8 +1,10 @@
|
|
1
1
|
from abc import ABC
|
2
2
|
import logging as log
|
3
3
|
from lgt_jobs.lgt_common.slack_client.web_client import SlackWebClient
|
4
|
-
from lgt_jobs.lgt_data.
|
5
|
-
from lgt_jobs.lgt_data.models.
|
4
|
+
from lgt_jobs.lgt_data.models.bots.dedicated_bot import DedicatedBotModel
|
5
|
+
from lgt_jobs.lgt_data.models.chat.request import MessageRequest
|
6
|
+
from lgt_jobs.lgt_data.models.people.people import SlackMemberInformation
|
7
|
+
from lgt_jobs.lgt_data.models.user.user import UserModel
|
6
8
|
from lgt_jobs.lgt_data.mongo_repository import UserMongoRepository, DedicatedBotRepository, \
|
7
9
|
SlackContactUserRepository, UserContactsRepository, MessageRequestsRepository
|
8
10
|
from pydantic import BaseModel
|
@@ -84,6 +86,8 @@ class InboxLeadsJob(BaseBackgroundJob, ABC):
|
|
84
86
|
if not sender_request:
|
85
87
|
log.info(f"[InboxLeadsJob]: New message request from {sender_id} for user: {user.email}")
|
86
88
|
requests_repo.upsert(user.id, sender_id, message_request)
|
89
|
+
user.notification_settings.inbox.need_to_notify = True
|
90
|
+
UserMongoRepository().set(user.id, notification_settings=user.notification_settings.to_dic())
|
87
91
|
|
88
92
|
@staticmethod
|
89
93
|
def create_people(slack_profile: dict, dedicated_bot: DedicatedBotModel):
|
@@ -1,7 +1,8 @@
|
|
1
1
|
from abc import ABC
|
2
2
|
from lgt_jobs.lgt_common.enums.slack_errors import SlackErrors
|
3
3
|
from lgt_jobs.lgt_common.slack_client.slack_client import SlackClient
|
4
|
-
from lgt_jobs.lgt_data.
|
4
|
+
from lgt_jobs.lgt_data.models.bots.base_bot import Source
|
5
|
+
from lgt_jobs.lgt_data.models.people.people import SlackMemberInformation
|
5
6
|
from lgt_jobs.lgt_data.mongo_repository import DedicatedBotRepository, SlackContactUserRepository
|
6
7
|
import logging as log
|
7
8
|
from pydantic import BaseModel
|
@@ -3,7 +3,7 @@ from abc import ABC
|
|
3
3
|
from typing import Optional
|
4
4
|
import logging as log
|
5
5
|
from lgt_jobs.lgt_common.slack_client.web_client import SlackWebClient
|
6
|
-
from lgt_jobs.lgt_data.
|
6
|
+
from lgt_jobs.lgt_data.models.chat.message import ChatMessage
|
7
7
|
from lgt_jobs.lgt_data.mongo_repository import DedicatedBotRepository, UserContactsRepository, ChatRepository
|
8
8
|
from pydantic import BaseModel
|
9
9
|
from lgt_jobs.basejobs import BaseBackgroundJobData, BaseBackgroundJob
|
@@ -2,7 +2,8 @@ from abc import ABC
|
|
2
2
|
from lgt_jobs.lgt_common.slack_client.slack_client import SlackClient
|
3
3
|
from lgt_jobs.lgt_common.slack_client.web_client import SlackFilesClient
|
4
4
|
from lgt_jobs.lgt_data.enums import SourceType
|
5
|
-
from lgt_jobs.lgt_data.
|
5
|
+
from lgt_jobs.lgt_data.models.external.slack.user import SlackUser
|
6
|
+
from lgt_jobs.lgt_data.models.people.profile import Profile
|
6
7
|
from lgt_jobs.lgt_data.mongo_repository import UserMongoRepository, DedicatedBotRepository
|
7
8
|
from pydantic import BaseModel
|
8
9
|
from lgt_jobs.basejobs import BaseBackgroundJobData, BaseBackgroundJob
|
@@ -4,7 +4,9 @@ import requests
|
|
4
4
|
from lgt_jobs.lgt_common.helpers import update_credentials
|
5
5
|
from lgt_jobs.lgt_common.slack_client.web_client import SlackWebClient
|
6
6
|
from lgt_jobs.lgt_data.enums import StatusConnection, SourceType
|
7
|
-
from lgt_jobs.lgt_data.
|
7
|
+
from lgt_jobs.lgt_data.models.bots.dedicated_bot import DedicatedBotModel
|
8
|
+
from lgt_jobs.lgt_data.models.external.slack.user import SlackUser
|
9
|
+
from lgt_jobs.lgt_data.models.external.user_workspace import UserWorkspace
|
8
10
|
from lgt_jobs.lgt_data.mongo_repository import UserMongoRepository, DedicatedBotRepository
|
9
11
|
from lgt_jobs.basejobs import BaseBackgroundJobData, BaseBackgroundJob
|
10
12
|
from lgt_jobs.jobs.bot_stats_update import BotStatsUpdateJob, BotStatsUpdateJobData
|