leadguru-jobs 0.639.0__py3-none-any.whl → 0.641.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.639.0.dist-info → leadguru_jobs-0.641.0.dist-info}/METADATA +1 -1
- leadguru_jobs-0.641.0.dist-info/RECORD +109 -0
- lgt_jobs/lgt_data/models/boards/__init__.py +0 -0
- lgt_jobs/lgt_data/models/boards/board.py +39 -0
- lgt_jobs/lgt_data/models/boards/status.py +14 -0
- lgt_jobs/lgt_data/models/bots/__init__.py +0 -0
- lgt_jobs/lgt_data/models/bots/base_bot.py +44 -0
- lgt_jobs/lgt_data/models/bots/bot_info.py +33 -0
- lgt_jobs/lgt_data/models/bots/dedicated_bot.py +90 -0
- lgt_jobs/lgt_data/models/chat/__init__.py +0 -0
- lgt_jobs/lgt_data/models/chat/file.py +8 -0
- lgt_jobs/lgt_data/models/chat/grouped_messages.py +17 -0
- lgt_jobs/lgt_data/models/chat/message.py +85 -0
- lgt_jobs/lgt_data/models/chat/request.py +15 -0
- lgt_jobs/lgt_data/models/chat/scheduled_message.py +14 -0
- lgt_jobs/lgt_data/models/contacts/__init__.py +0 -0
- lgt_jobs/lgt_data/models/contacts/contact.py +22 -0
- lgt_jobs/lgt_data/models/external/__init__.py +0 -0
- lgt_jobs/lgt_data/models/external/cloud/__init__.py +0 -0
- lgt_jobs/lgt_data/models/external/cloud/file.py +18 -0
- lgt_jobs/lgt_data/models/external/discord/__init__.py +0 -0
- lgt_jobs/lgt_data/models/external/discord/user.py +45 -0
- lgt_jobs/lgt_data/models/external/slack/__init__.py +0 -0
- lgt_jobs/lgt_data/models/external/slack/timezone.py +8 -0
- lgt_jobs/lgt_data/models/external/slack/user.py +43 -0
- lgt_jobs/lgt_data/models/external/user_workspace.py +32 -0
- lgt_jobs/lgt_data/models/leads/__init__.py +0 -0
- lgt_jobs/lgt_data/models/leads/config.py +13 -0
- lgt_jobs/lgt_data/models/leads/extended_lead.py +46 -0
- lgt_jobs/lgt_data/models/leads/lead.py +48 -0
- lgt_jobs/lgt_data/models/leads/message.py +51 -0
- lgt_jobs/lgt_data/models/notifications/__init__.py +0 -0
- lgt_jobs/lgt_data/models/notifications/notification.py +248 -0
- lgt_jobs/lgt_data/models/notifications/notification_settings.py +52 -0
- lgt_jobs/lgt_data/models/people/__init__.py +0 -0
- lgt_jobs/lgt_data/models/people/people.py +75 -0
- lgt_jobs/lgt_data/models/people/profile.py +13 -0
- lgt_jobs/lgt_data/models/post/__init__.py +0 -0
- lgt_jobs/lgt_data/models/post/message.py +18 -0
- lgt_jobs/lgt_data/models/post/post.py +15 -0
- lgt_jobs/lgt_data/models/templates/__init__.py +0 -0
- lgt_jobs/lgt_data/models/templates/template.py +12 -0
- lgt_jobs/lgt_data/models/user/__init__.py +0 -0
- lgt_jobs/lgt_data/models/user/feature.py +10 -0
- lgt_jobs/lgt_data/models/user/general_settings.py +9 -0
- lgt_jobs/lgt_data/models/user/reset_password.py +7 -0
- lgt_jobs/lgt_data/models/user/subscription.py +22 -0
- lgt_jobs/lgt_data/models/user/user.py +95 -0
- lgt_jobs/lgt_data/models/user/user_follow_ups.py +20 -0
- lgt_jobs/lgt_data/models/user/user_page.py +19 -0
- lgt_jobs/lgt_data/models/user/verification.py +12 -0
- lgt_jobs/lgt_data/models/user_leads/__init__.py +0 -0
- lgt_jobs/lgt_data/models/user_leads/extended_user_lead.py +41 -0
- lgt_jobs/lgt_data/models/user_leads/user_lead.py +33 -0
- lgt_jobs/lgt_data/repositories/__init__.py +0 -0
- lgt_jobs/lgt_data/repositories/post/__init__.py +0 -0
- lgt_jobs/lgt_data/repositories/post/posts.py +28 -0
- leadguru_jobs-0.639.0.dist-info/RECORD +0 -54
- {leadguru_jobs-0.639.0.dist-info → leadguru_jobs-0.641.0.dist-info}/WHEEL +0 -0
- {leadguru_jobs-0.639.0.dist-info → leadguru_jobs-0.641.0.dist-info}/top_level.txt +0 -0
@@ -0,0 +1,22 @@
|
|
1
|
+
from datetime import datetime
|
2
|
+
|
3
|
+
from lgt_jobs.lgt_data.models.base import BaseModel
|
4
|
+
from lgt_jobs.lgt_data.models.user.feature import Feature
|
5
|
+
|
6
|
+
|
7
|
+
class Subscription(BaseModel):
|
8
|
+
features: list[Feature]
|
9
|
+
duration_days: int
|
10
|
+
name: str
|
11
|
+
price: int
|
12
|
+
limits: int
|
13
|
+
trial: bool
|
14
|
+
updated_at: datetime = None
|
15
|
+
|
16
|
+
@classmethod
|
17
|
+
def from_dic(cls, dic: dict):
|
18
|
+
if not dic:
|
19
|
+
return None
|
20
|
+
model: Subscription | None = super().from_dic(dic)
|
21
|
+
model.features = [Feature.from_dic(feature) for feature in dic.get('features', [])]
|
22
|
+
return model
|
@@ -0,0 +1,95 @@
|
|
1
|
+
import copy
|
2
|
+
from datetime import UTC, datetime
|
3
|
+
from typing import List, Optional
|
4
|
+
|
5
|
+
from bson import ObjectId
|
6
|
+
|
7
|
+
from lgt_jobs.lgt_data.enums import UserRole
|
8
|
+
from lgt_jobs.lgt_data.models.base import BaseModel
|
9
|
+
from lgt_jobs.lgt_data.models.external.discord.user import DiscordUser
|
10
|
+
from lgt_jobs.lgt_data.models.external.slack.user import SlackUser
|
11
|
+
from lgt_jobs.lgt_data.models.notifications.notification_settings import NotificationSettings
|
12
|
+
from lgt_jobs.lgt_data.models.people.profile import Profile
|
13
|
+
from lgt_jobs.lgt_data.models.user.general_settings import GeneralSettings
|
14
|
+
|
15
|
+
|
16
|
+
class UserModel(BaseModel):
|
17
|
+
def __init__(self):
|
18
|
+
super().__init__()
|
19
|
+
self.email: Optional[str] = None
|
20
|
+
self.password: Optional[str] = None
|
21
|
+
self.roles: List[str] = []
|
22
|
+
self.user_name: str = ''
|
23
|
+
self.company: str = ''
|
24
|
+
self.company_size: Optional[int] = None
|
25
|
+
self.company_industries: Optional[List[str]] = None
|
26
|
+
self.company_technologies: Optional[List[str]] = None
|
27
|
+
self.company_locations: Optional[List[str]] = None
|
28
|
+
self.company_web_site: str = ''
|
29
|
+
self.company_description: str = ''
|
30
|
+
self.position: str = ''
|
31
|
+
self.leads_limit: Optional[int] = None
|
32
|
+
self.leads_proceeded: Optional[int] = None
|
33
|
+
self.leads_filtered: Optional[int] = None
|
34
|
+
self.leads_limit_updated_at: Optional[int] = None
|
35
|
+
self.paid_lead_price: int = 1
|
36
|
+
self.state: int = 0
|
37
|
+
self.credits_exceeded_at: Optional[datetime] = None
|
38
|
+
self.unanswered_leads_period = None
|
39
|
+
self.inactive = None
|
40
|
+
self.slack_users: List[SlackUser] = []
|
41
|
+
self.discord_users: List[DiscordUser] = []
|
42
|
+
self.verified: bool = False
|
43
|
+
self.subscription_id: ObjectId | None = None
|
44
|
+
self.subscription_expired_at: datetime | None = None
|
45
|
+
self.balance: str | None = None
|
46
|
+
self.subscription_name: str | None = None
|
47
|
+
self.subscription_expiration_notified = False
|
48
|
+
self.subscription_expiration_warning_notified = False
|
49
|
+
self.notification_settings: NotificationSettings | None = None
|
50
|
+
self.general_settings: GeneralSettings | None = None
|
51
|
+
|
52
|
+
@classmethod
|
53
|
+
def from_dic(cls, dic: dict):
|
54
|
+
if not dic:
|
55
|
+
return None
|
56
|
+
|
57
|
+
model: UserModel = cls()
|
58
|
+
for k, v in dic.items():
|
59
|
+
setattr(model, k, v)
|
60
|
+
|
61
|
+
if '_id' in dic:
|
62
|
+
setattr(model, 'id', dic['_id'])
|
63
|
+
|
64
|
+
model.slack_profile = Profile.from_dic(dic.get('slack_profile'))
|
65
|
+
model.slack_users = [SlackUser.from_dic(user) for user in dic.get('slack_users', [])]
|
66
|
+
model.discord_users = [DiscordUser.from_dic(user) for user in dic.get('discord_users', [])]
|
67
|
+
model.notification_settings = NotificationSettings.from_dic(dic.get('notification_settings'))
|
68
|
+
model.general_settings = GeneralSettings.from_dic(dic.get('general_settings'))
|
69
|
+
return model
|
70
|
+
|
71
|
+
def to_dic(self):
|
72
|
+
result = copy.deepcopy(self.__dict__)
|
73
|
+
|
74
|
+
if result.get('slack_profile'):
|
75
|
+
result['slack_profile'] = result.get('slack_profile').__dict__
|
76
|
+
if result.get('notification_settings'):
|
77
|
+
result['notification_settings'] = NotificationSettings.to_dic(result.get('notification_settings'))
|
78
|
+
if result.get('general_settings'):
|
79
|
+
result['general_settings'] = GeneralSettings.to_dic(result.get('general_settings'))
|
80
|
+
|
81
|
+
return result
|
82
|
+
|
83
|
+
@property
|
84
|
+
def is_admin(self):
|
85
|
+
return UserRole.ADMIN in self.roles
|
86
|
+
|
87
|
+
@property
|
88
|
+
def subscription_expired(self):
|
89
|
+
return self.subscription_expired_at.replace(tzinfo=UTC) < datetime.now(UTC)
|
90
|
+
|
91
|
+
def get_slack_user(self, slack_email: str) -> SlackUser:
|
92
|
+
return next(filter(lambda x: slack_email == x.email, self.slack_users), None)
|
93
|
+
|
94
|
+
def get_discord_user(self, login: str) -> DiscordUser:
|
95
|
+
return next(filter(lambda x: login == x.login, self.discord_users), None)
|
@@ -0,0 +1,20 @@
|
|
1
|
+
from lgt_jobs.lgt_data.models.base import DictionaryModel
|
2
|
+
from lgt_jobs.lgt_data.models.leads.extended_lead import ExtendedLeadModel
|
3
|
+
from lgt_jobs.lgt_data.models.notifications.notification_settings import NotificationSettings
|
4
|
+
|
5
|
+
|
6
|
+
class UserFollowUps(DictionaryModel):
|
7
|
+
actual_follow_ups: list[ExtendedLeadModel] = []
|
8
|
+
overdue_follow_ups: list[ExtendedLeadModel] = []
|
9
|
+
email: str | None = None
|
10
|
+
notification_settings: NotificationSettings | None = None
|
11
|
+
|
12
|
+
@classmethod
|
13
|
+
def from_dic(cls, dic: dict):
|
14
|
+
if not dic:
|
15
|
+
return None
|
16
|
+
model: UserFollowUps | None = super().from_dic(dic)
|
17
|
+
model.actual_follow_ups = [ExtendedLeadModel.from_dic(lead) for lead in dic.get('actual_follow_ups', [])]
|
18
|
+
model.overdue_follow_ups = [ExtendedLeadModel.from_dic(lead) for lead in dic.get('overdue_follow_ups', [])]
|
19
|
+
model.notification_settings = NotificationSettings.from_dic(dic.get('notification_settings'))
|
20
|
+
return model
|
@@ -0,0 +1,19 @@
|
|
1
|
+
from typing import List
|
2
|
+
|
3
|
+
from lgt_jobs.lgt_data.models.user.user import UserModel
|
4
|
+
|
5
|
+
|
6
|
+
class UsersPage:
|
7
|
+
users: List[UserModel]
|
8
|
+
count: int = 0
|
9
|
+
|
10
|
+
def __init__(self, users: List[UserModel], count: int):
|
11
|
+
self.users = users
|
12
|
+
self.count = count
|
13
|
+
|
14
|
+
@staticmethod
|
15
|
+
def from_dic(dic: dict):
|
16
|
+
users = [UserModel.from_dic(doc) for doc in dic.get('page', [])]
|
17
|
+
count = dic.get('count', 0)
|
18
|
+
return UsersPage(users=users, count=count)
|
19
|
+
|
@@ -0,0 +1,12 @@
|
|
1
|
+
from datetime import datetime, UTC
|
2
|
+
|
3
|
+
from lgt_jobs.lgt_data.models.base import DictionaryModel
|
4
|
+
|
5
|
+
|
6
|
+
class UserVerificationModel(DictionaryModel):
|
7
|
+
pass
|
8
|
+
|
9
|
+
def __init__(self):
|
10
|
+
super().__init__()
|
11
|
+
self.email = None
|
12
|
+
self.created_at = datetime.now(UTC)
|
File without changes
|
@@ -0,0 +1,41 @@
|
|
1
|
+
from typing import List
|
2
|
+
|
3
|
+
from lgt_jobs.lgt_data.models.bots.bot_info import BotInfo
|
4
|
+
from lgt_jobs.lgt_data.models.leads.lead import LeadModel
|
5
|
+
from lgt_jobs.lgt_data.models.people.people import SlackMemberInformation
|
6
|
+
from lgt_jobs.lgt_data.models.user_leads.user_lead import UserLeadModel
|
7
|
+
|
8
|
+
|
9
|
+
class ExtendedUserLeadModel(UserLeadModel):
|
10
|
+
pass
|
11
|
+
|
12
|
+
def __init__(self):
|
13
|
+
super().__init__()
|
14
|
+
self.contact: SlackMemberInformation | None = None
|
15
|
+
self.previous_publications = []
|
16
|
+
self.bots: List[BotInfo] = []
|
17
|
+
self.user_email: str | None = None
|
18
|
+
|
19
|
+
@classmethod
|
20
|
+
def from_dic(cls, dic: dict):
|
21
|
+
if not dic:
|
22
|
+
return None
|
23
|
+
|
24
|
+
result: ExtendedUserLeadModel | None = super().from_dic(dic)
|
25
|
+
if not result:
|
26
|
+
return None
|
27
|
+
|
28
|
+
result.contact = SlackMemberInformation.from_dic(dic.get('contact'))
|
29
|
+
result.previous_publications = [LeadModel.from_dic(lead) for lead in dic.get('previous_publications', [])]
|
30
|
+
return result
|
31
|
+
|
32
|
+
def to_dic(self):
|
33
|
+
result = super().to_dic()
|
34
|
+
result["contact"] = self.contact.to_dic()
|
35
|
+
return result
|
36
|
+
|
37
|
+
def to_csv(self, board_name: str) -> List[str]:
|
38
|
+
return [self.message.source, self.contact.real_name, self.contact.title, self.contact.email,
|
39
|
+
self.notes, board_name, self.status,
|
40
|
+
self.followup_date.strftime("%d.%m.%Y %H:%M") if self.followup_date else "",
|
41
|
+
self.message.message.replace('\n', ' ').strip()]
|
@@ -0,0 +1,33 @@
|
|
1
|
+
from datetime import datetime, UTC
|
2
|
+
|
3
|
+
from bson import ObjectId
|
4
|
+
|
5
|
+
from lgt_jobs.lgt_data.models.leads.lead import LeadModel
|
6
|
+
|
7
|
+
|
8
|
+
class UserLeadModel(LeadModel):
|
9
|
+
pass
|
10
|
+
|
11
|
+
def __init__(self):
|
12
|
+
super().__init__()
|
13
|
+
self.order: int = 0
|
14
|
+
self.followup_date: datetime | None = None
|
15
|
+
self.user_id: ObjectId | None = None
|
16
|
+
self.chat_viewed_at: datetime | None = None
|
17
|
+
self.board_id: ObjectId | None = None
|
18
|
+
|
19
|
+
@classmethod
|
20
|
+
def from_dic(cls, dic: dict):
|
21
|
+
if not dic:
|
22
|
+
return None
|
23
|
+
|
24
|
+
result: UserLeadModel | None = super().from_dic(dic)
|
25
|
+
if not result:
|
26
|
+
return None
|
27
|
+
|
28
|
+
if result.followup_date:
|
29
|
+
result.followup_date.replace(tzinfo=UTC)
|
30
|
+
|
31
|
+
result.chat_viewed_at = dic.get('chat_viewed_at')
|
32
|
+
return result
|
33
|
+
|
File without changes
|
File without changes
|
@@ -0,0 +1,28 @@
|
|
1
|
+
from bson import ObjectId
|
2
|
+
|
3
|
+
from lgt_jobs.lgt_data.models.post.post import Post
|
4
|
+
from lgt_jobs.lgt_data.mongo_repository import BaseMongoRepository
|
5
|
+
|
6
|
+
|
7
|
+
class PostsRepository(BaseMongoRepository):
|
8
|
+
collection_name = 'posts'
|
9
|
+
|
10
|
+
def get_users_posts(self, ids: list[str]) -> dict[ObjectId, list[Post]]:
|
11
|
+
pipeline = [
|
12
|
+
{
|
13
|
+
'$lookup': {
|
14
|
+
'from': 'posted_messages',
|
15
|
+
'as': 'messages',
|
16
|
+
'let': {'id': '$_id'},
|
17
|
+
'pipeline': [
|
18
|
+
{'$match': {'$expr': {'$and': [{'$in': ['$id', ids]}, {'$eq': ['$$id', '$post_id']}]}}}
|
19
|
+
]}},
|
20
|
+
{
|
21
|
+
'$match': {'messages': {'$ne': []}}
|
22
|
+
},
|
23
|
+
{
|
24
|
+
'$group': {'_id': '$user_id', 'posts': {'$push': '$$ROOT'}}
|
25
|
+
}]
|
26
|
+
docs = self.collection().aggregate(pipeline)
|
27
|
+
posts_map = {doc['_id']: [Post.from_dic(post) for post in doc['posts']] for doc in docs}
|
28
|
+
return posts_map
|
@@ -1,54 +0,0 @@
|
|
1
|
-
lgt_jobs/__init__.py,sha256=efDX0VsSwC2we92quUu8E62MqC-4audo0Rv37Y6USnk,2144
|
2
|
-
lgt_jobs/basejobs.py,sha256=LPEclvY6fIG17YMGy9pRK0Q58n62gkI5W1BTK6R2p-c,1234
|
3
|
-
lgt_jobs/env.py,sha256=cRO03GGvstUjBsv3uYO-iakrOvAk_ZWUP_fnmf21iZQ,789
|
4
|
-
lgt_jobs/main.py,sha256=cK_nkBtJHnUNDbba1WZotqPtI_6OWxiYQkAgco9OAmE,1539
|
5
|
-
lgt_jobs/runner.py,sha256=pS-Qwyfuk22aQ1Mk3p-Q0ysdZfKy1Bh9YoWBlDaLeM8,2234
|
6
|
-
lgt_jobs/simple_job.py,sha256=EBxhre3749GEAzJyaV1GXYy3P0pzwHchxcZ2kSN1vWU,527
|
7
|
-
lgt_jobs/smtp.py,sha256=k0qh-Qk9AeSU3WrCOVmuWkfpi9xzwaPMzbw9cED-pZw,1150
|
8
|
-
lgt_jobs/assets/images/arrow.png,sha256=Lr_zG1TyySAWX78jiojcV7j8BHe2S_Oi7eZYAfe4YbM,536
|
9
|
-
lgt_jobs/assets/images/firework.png,sha256=9d_0lUpDFfT3e4JTgp5XVb03qAdtO9yNVi1c1KoQDp8,33754
|
10
|
-
lgt_jobs/assets/images/lock.png,sha256=515llTFqboG9PYXIrXhlbPZ5lQOHXjEYyQkXc9WfJxc,5978
|
11
|
-
lgt_jobs/assets/images/logo.png,sha256=nt377FGkBalBF9Z9TYQRv9loHolTXwU8_VRYvCXXzx0,12596
|
12
|
-
lgt_jobs/assets/images/mail.png,sha256=eORzQcAMkFr7DjgtABVhJ_zFuXgO7OXv78lLF4b39B0,7168
|
13
|
-
lgt_jobs/jobs/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
14
|
-
lgt_jobs/jobs/analytics.py,sha256=IIsWt4A1qUw3w-S-8W16uKY1FRVWfXXA41_mu4uCNiM,979
|
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
|
-
lgt_jobs/jobs/mass_message.py,sha256=1mFcBlL2MhzLbj5yrd_NyJc7TXDWCcROAzGDnr0miMU,2035
|
21
|
-
lgt_jobs/jobs/send_code.py,sha256=dIlLPkG3GgGKIEqGiElyzrtdrnJNTL1Ak2V0xnE-WIQ,824
|
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
|
-
lgt_jobs/lgt_common/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
26
|
-
lgt_jobs/lgt_common/helpers.py,sha256=3T47_Abw7datSIxVqIHTCB-sh-rnahWrmrFG8sSY9ZE,178
|
27
|
-
lgt_jobs/lgt_common/discord_client/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
28
|
-
lgt_jobs/lgt_common/discord_client/discord_client.py,sha256=IA5JgoZq-oowkEGLRReZbW4Wa7cTtdSTPfGKF6ymNm8,4067
|
29
|
-
lgt_jobs/lgt_common/discord_client/methods.py,sha256=qFbNRsI1VlPZD2os5d4bdZhrnu69OW__fhMRssF0oMk,633
|
30
|
-
lgt_jobs/lgt_common/enums/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
31
|
-
lgt_jobs/lgt_common/enums/slack_errors.py,sha256=nK7uoguq0F8bIHROp73oeszehT7CgS_VU45n9_Gq_WY,172
|
32
|
-
lgt_jobs/lgt_common/pubsub/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
33
|
-
lgt_jobs/lgt_common/pubsub/messages.py,sha256=rm7uKbxwDTWJqsVA8Kee-4YT58bThjCEV2Q0559Lrzg,1397
|
34
|
-
lgt_jobs/lgt_common/pubsub/pubsubfactory.py,sha256=rfUDooYuhBQ2pE9FdDxZOpXjbrvlpiiQLCGOtnTFbSg,2204
|
35
|
-
lgt_jobs/lgt_common/slack_client/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
36
|
-
lgt_jobs/lgt_common/slack_client/methods.py,sha256=ctKF_1UHEmSWaRsoGEgMZicVabV7eEufZ7pjxdMAx8g,1455
|
37
|
-
lgt_jobs/lgt_common/slack_client/slack_client.py,sha256=SR3YjJCJ-_8BPu29sFtF0ULijNL3QkBrvp_JXkm4DDk,13806
|
38
|
-
lgt_jobs/lgt_common/slack_client/web_client.py,sha256=WCu8mqYhauuxp9iDAMsjocchKD78iWdcnbu7Ozdyzq8,3448
|
39
|
-
lgt_jobs/lgt_data/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
40
|
-
lgt_jobs/lgt_data/analytics.py,sha256=yfrFPXrBofzZqUNn479JkrbZXDa2ljgk-Le0YrQ9rew,21690
|
41
|
-
lgt_jobs/lgt_data/engine.py,sha256=GY8FOl3dl7euKjQRML_H3ophaSTgfQ8ICMRv1NpE2oE,7745
|
42
|
-
lgt_jobs/lgt_data/enums.py,sha256=27Gd_o5QVCrSUMIfL0DJ72xV77T9fK0kYrOaC78O0SU,2292
|
43
|
-
lgt_jobs/lgt_data/helpers.py,sha256=S_1P7pnx14dllmen-TzjA9pkKWQr39x8-v6iv7FUYnQ,423
|
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
|
46
|
-
lgt_jobs/lgt_data/models/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
47
|
-
lgt_jobs/lgt_data/models/base.py,sha256=YaiceCaaF45snOLx-bQoYJ1aTWrfgMQeHWjAaRnzGKE,592
|
48
|
-
lgt_jobs/services/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
49
|
-
lgt_jobs/services/web_client.py,sha256=oMyWJxwGeIe3f40fPT7xcisjDg3BhA3Ipf8dr1jVT-Y,1549
|
50
|
-
lgt_jobs/templates/new_message.html,sha256=dZl8UmdAOOMq4nidvAgMFroSrTV7Pw0RWt2yLp_2idg,6989
|
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,,
|
File without changes
|
File without changes
|