leadguru-jobs 0.553.0__py3-none-any.whl → 0.554.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.553.0.dist-info → leadguru_jobs-0.554.0.dist-info}/METADATA +1 -1
- {leadguru_jobs-0.553.0.dist-info → leadguru_jobs-0.554.0.dist-info}/RECORD +7 -6
- lgt_jobs/__init__.py +4 -0
- lgt_jobs/jobs/connect_sources.py +81 -0
- lgt_jobs/lgt_data/model.py +2 -2
- {leadguru_jobs-0.553.0.dist-info → leadguru_jobs-0.554.0.dist-info}/WHEEL +0 -0
- {leadguru_jobs-0.553.0.dist-info → leadguru_jobs-0.554.0.dist-info}/top_level.txt +0 -0
@@ -1,4 +1,4 @@
|
|
1
|
-
lgt_jobs/__init__.py,sha256=
|
1
|
+
lgt_jobs/__init__.py,sha256=kmM5J3qBJd-fOZa2I4gkh36IytrgN6_18gWwwpR3n6Y,2156
|
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
|
@@ -14,6 +14,7 @@ lgt_jobs/jobs/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
14
14
|
lgt_jobs/jobs/analytics.py,sha256=IIsWt4A1qUw3w-S-8W16uKY1FRVWfXXA41_mu4uCNiM,979
|
15
15
|
lgt_jobs/jobs/bot_stats_update.py,sha256=R6mf5FxhWbyx92AYXlj0FZVjz2Tgz86mBvLHrsQ9AFE,7502
|
16
16
|
lgt_jobs/jobs/chat_history.py,sha256=QZdSWlk_DrDJt5yrNApYHiUEWQMYcKyuXaP_PlzkjYw,6303
|
17
|
+
lgt_jobs/jobs/connect_sources.py,sha256=2tl1MGdm6l0yFwCXlD0J2tFSQpj7i1eT9sYd1nMOwWA,3596
|
17
18
|
lgt_jobs/jobs/inbox_leads.py,sha256=EYxdQPseNBY5ON7BK3LpnXDCgQpzHTPLRJCZmZiAAHA,5582
|
18
19
|
lgt_jobs/jobs/mass_message.py,sha256=1mFcBlL2MhzLbj5yrd_NyJc7TXDWCcROAzGDnr0miMU,2035
|
19
20
|
lgt_jobs/jobs/send_code.py,sha256=dIlLPkG3GgGKIEqGiElyzrtdrnJNTL1Ak2V0xnE-WIQ,824
|
@@ -41,12 +42,12 @@ lgt_jobs/lgt_data/analytics.py,sha256=TFUffL8Dn-vIJ3ZaCVN-cj1Qnjb8F9GJyuk6Fo7mR1
|
|
41
42
|
lgt_jobs/lgt_data/engine.py,sha256=Rsbz-CApAo_TVDssdjBkv8v_fVOZm_Uh1S6W4fnaEWo,7728
|
42
43
|
lgt_jobs/lgt_data/enums.py,sha256=GZn6wm-kOd3veEOo1qlOR8QYje4vKaGV0na9jGt9388,2160
|
43
44
|
lgt_jobs/lgt_data/helpers.py,sha256=NDa-V5EYaJfkGoWsmQSwSe6N_jxNxs8tHRQzW1iST6k,480
|
44
|
-
lgt_jobs/lgt_data/model.py,sha256=
|
45
|
+
lgt_jobs/lgt_data/model.py,sha256=HZenmwr_fmxVw0XhUlgHZJOaSK_Ouv9mBcY6DfC61oU,28098
|
45
46
|
lgt_jobs/lgt_data/mongo_repository.py,sha256=qqbt-oJ-RHmICLARgWvHuyPwVeKFkUqJZ2MA1bfIlXs,44762
|
46
47
|
lgt_jobs/services/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
47
48
|
lgt_jobs/services/web_client.py,sha256=GLWsJkIC8rv6xLFaLwcMm4EwBlVDu0njORwkZqBJaE4,2086
|
48
49
|
lgt_jobs/templates/new_message.html,sha256=BD_E90akmQ1Wf07wtZAjeK_7DUKRmja5HFHVo_AKI24,6994
|
49
|
-
leadguru_jobs-0.
|
50
|
-
leadguru_jobs-0.
|
51
|
-
leadguru_jobs-0.
|
52
|
-
leadguru_jobs-0.
|
50
|
+
leadguru_jobs-0.554.0.dist-info/METADATA,sha256=Rney8pzxyO6HwI3AvxAeekzMpaaXotwznfx8IgZ3fmM,1319
|
51
|
+
leadguru_jobs-0.554.0.dist-info/WHEEL,sha256=GJ7t_kWBFywbagK5eo9IoUwLW6oyOeTKmQ-9iHFVNxQ,92
|
52
|
+
leadguru_jobs-0.554.0.dist-info/top_level.txt,sha256=rIuw1DqwbnZyeoarBSC-bYeGOhv9mZBs7_afl9q4_JI,9
|
53
|
+
leadguru_jobs-0.554.0.dist-info/RECORD,,
|
lgt_jobs/__init__.py
CHANGED
@@ -3,6 +3,7 @@ name = "lgt_jobs"
|
|
3
3
|
from .jobs.user_balance_update import UpdateUserBalanceJob, UpdateUserBalanceJobData
|
4
4
|
from .jobs.send_slack_message import SendSlackMessageJob, SendSlackMessageJobData
|
5
5
|
from .jobs.analytics import (TrackAnalyticsJob, TrackAnalyticsJobData)
|
6
|
+
from .jobs.connect_sources import (ConnectSourceJobData, ConnectSourceJob)
|
6
7
|
from .jobs.bot_stats_update import (BotStatsUpdateJob, BotStatsUpdateJobData)
|
7
8
|
from .jobs.chat_history import (LoadChatHistoryJob, LoadChatHistoryJobData)
|
8
9
|
from .jobs.update_slack_profile import (UpdateExternalUserProfileJob, UpdateExternalUserProfileJobData)
|
@@ -22,6 +23,7 @@ jobs_map = {
|
|
22
23
|
"SendSlackMessageJob": SendSlackMessageJob,
|
23
24
|
"UpdateUserBalanceJob": UpdateUserBalanceJob,
|
24
25
|
"SendMassMessageSlackChannelJob": SendMassMessageSlackChannelJob,
|
26
|
+
"ConnectSourceJob": ConnectSourceJob
|
25
27
|
}
|
26
28
|
__all__ = [
|
27
29
|
# Jobs
|
@@ -35,6 +37,7 @@ __all__ = [
|
|
35
37
|
SendSlackMessageJob,
|
36
38
|
UpdateUserBalanceJob,
|
37
39
|
SendMassMessageSlackChannelJob,
|
40
|
+
ConnectSourceJob,
|
38
41
|
|
39
42
|
# module classes
|
40
43
|
BackgroundJobRunner,
|
@@ -50,6 +53,7 @@ __all__ = [
|
|
50
53
|
SendSlackMessageJobData,
|
51
54
|
UpdateUserBalanceJobData,
|
52
55
|
SendMassMessageSlackChannelJobData,
|
56
|
+
ConnectSourceJobData,
|
53
57
|
# mapping
|
54
58
|
jobs_map
|
55
59
|
]
|
@@ -0,0 +1,81 @@
|
|
1
|
+
from abc import ABC
|
2
|
+
from typing import List
|
3
|
+
import logging as log
|
4
|
+
from lgt_jobs import BaseBackgroundJob, BaseBackgroundJobData, BackgroundJobRunner, BotStatsUpdateJob, \
|
5
|
+
BotStatsUpdateJobData
|
6
|
+
from lgt_jobs.lgt_data.engine import UserTrackAction
|
7
|
+
from lgt_jobs.lgt_data.enums import SourceType, UserAction, StatusConnection
|
8
|
+
from lgt_jobs.lgt_data.model import BaseModel, DedicatedBotModel, Server, Source, SlackUser
|
9
|
+
from lgt_jobs.lgt_data.mongo_repository import DedicatedBotRepository, UserMongoRepository
|
10
|
+
|
11
|
+
|
12
|
+
class ConnectSourceJobData(BaseBackgroundJobData, BaseModel):
|
13
|
+
slack_email: str
|
14
|
+
sources_ids: List[str]
|
15
|
+
action_user_email: str
|
16
|
+
user_email: str
|
17
|
+
|
18
|
+
|
19
|
+
class ConnectSourceJob(BaseBackgroundJob, ABC):
|
20
|
+
@property
|
21
|
+
def job_data_type(self) -> type:
|
22
|
+
return ConnectSourceJobData
|
23
|
+
|
24
|
+
def exec(self, data: ConnectSourceJobData):
|
25
|
+
users_repository = UserMongoRepository()
|
26
|
+
bots_repository = DedicatedBotRepository()
|
27
|
+
action_user = users_repository.get_by_email(data.action_user_email)
|
28
|
+
user = users_repository.get_by_email(data.user_email)
|
29
|
+
if not action_user:
|
30
|
+
log.info(f'Unable to find user with email: {data.action_user_email}')
|
31
|
+
return
|
32
|
+
|
33
|
+
slack_user: SlackUser = action_user.get_slack_user(data.slack_email)
|
34
|
+
if not slack_user:
|
35
|
+
log.info(f"You have no credentials for {data.slack_email}. Try to login to Slack.")
|
36
|
+
bots = []
|
37
|
+
for ws in slack_user.workspaces:
|
38
|
+
if ws.id in data.sources_ids:
|
39
|
+
active_bot = bots_repository.get_one(user_id=action_user.id, active_server_id=ws.id)
|
40
|
+
bot = bots_repository.get_one(user_id=action_user.id, server_id=ws.id, include_deleted=True,
|
41
|
+
user_name=data.slack_email)
|
42
|
+
if active_bot:
|
43
|
+
continue
|
44
|
+
if not bot:
|
45
|
+
bot = DedicatedBotModel()
|
46
|
+
bot.servers = [Server()]
|
47
|
+
|
48
|
+
bot.user_name = slack_user.email
|
49
|
+
bot.slack_url = ws.url
|
50
|
+
bot.user_id = action_user.id
|
51
|
+
bot.created_by = user.email
|
52
|
+
bot.registration_link = ws.url
|
53
|
+
bot.token = ws.token
|
54
|
+
bot.cookies = slack_user.cookies
|
55
|
+
bot.deleted = False
|
56
|
+
bot.paused = False
|
57
|
+
bot.invalid_creds = False
|
58
|
+
bot.banned = False
|
59
|
+
bot.two_factor_required = ws.two_factor_required
|
60
|
+
source = Source()
|
61
|
+
|
62
|
+
for server in bot.servers:
|
63
|
+
server.id = ws.id
|
64
|
+
server.name = ws.domain
|
65
|
+
server.deleted = False
|
66
|
+
server.active = True
|
67
|
+
server.icon = ws.icon
|
68
|
+
|
69
|
+
source.source_id = ws.id
|
70
|
+
source.source_name = ws.domain
|
71
|
+
bot.type = source.source_type = SourceType.SLACK
|
72
|
+
bot.icon = ws.icon
|
73
|
+
bot.source = source
|
74
|
+
bots_repository.add_or_update(bot)
|
75
|
+
UserTrackAction.track(action_user.id, UserAction.START_SOURCE, ws.id)
|
76
|
+
bot = bots_repository.get_one(user_id=action_user.id, server_id=ws.id, user_name=slack_user.email)
|
77
|
+
bots.append(bot)
|
78
|
+
BackgroundJobRunner.submit(BotStatsUpdateJob, BotStatsUpdateJobData(bot_id=str(bot.id)))
|
79
|
+
slack_user.status = StatusConnection.COMPLETE
|
80
|
+
users_repository.set(action_user.id, slack_users=[user.to_dic() for user in action_user.slack_users])
|
81
|
+
return bots
|
lgt_jobs/lgt_data/model.py
CHANGED
@@ -290,8 +290,8 @@ class UserModel(BaseModel):
|
|
290
290
|
self.subscription_expired_at: datetime | None = None
|
291
291
|
self.balance: str | None = None
|
292
292
|
self.subscription_name: str | None = None
|
293
|
-
self.
|
294
|
-
self.
|
293
|
+
self.trial_expiration_notified = False
|
294
|
+
self.trial_expiration_warning_notified = False
|
295
295
|
|
296
296
|
@classmethod
|
297
297
|
def from_dic(cls, dic: dict):
|
File without changes
|
File without changes
|