leadguru-jobs 0.543.0__py3-none-any.whl → 0.544.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.
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: leadguru_jobs
3
- Version: 0.543.0
3
+ Version: 0.544.0
4
4
  Summary: LGT jobs builds
5
5
  Author-email: developer@leadguru.co
6
6
  Classifier: Development Status :: 5 - Production/Stable
@@ -34,8 +34,8 @@ lgt_jobs/lgt_common/pubsub/messages.py,sha256=rm7uKbxwDTWJqsVA8Kee-4YT58bThjCEV2
34
34
  lgt_jobs/lgt_common/pubsub/pubsubfactory.py,sha256=rfUDooYuhBQ2pE9FdDxZOpXjbrvlpiiQLCGOtnTFbSg,2204
35
35
  lgt_jobs/lgt_common/slack_client/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
36
36
  lgt_jobs/lgt_common/slack_client/methods.py,sha256=ctKF_1UHEmSWaRsoGEgMZicVabV7eEufZ7pjxdMAx8g,1455
37
- lgt_jobs/lgt_common/slack_client/slack_client.py,sha256=mbwHaqixC3xCJ0KP9WepxJtwlsJwTSEWQ2O1hx0hjXE,12173
38
- lgt_jobs/lgt_common/slack_client/web_client.py,sha256=vAfE6qrT1oTyP35chRsgeH008xtbsNGYdPqMqCdJmlE,6063
37
+ lgt_jobs/lgt_common/slack_client/slack_client.py,sha256=6Jgz0ELARcqknL9YBW4yph75E_AUsDGBsoTpcoYNMBQ,13479
38
+ lgt_jobs/lgt_common/slack_client/web_client.py,sha256=JOW-VGYYGqFZgyoqjOZ3t_XUdZAOttETVjVBZUWiUDM,6245
39
39
  lgt_jobs/lgt_data/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
40
40
  lgt_jobs/lgt_data/analytics.py,sha256=FJxImuuJw-m4B-eKIddytBy_B19BVsdPEHib-5gNgyo,20172
41
41
  lgt_jobs/lgt_data/engine.py,sha256=Rsbz-CApAo_TVDssdjBkv8v_fVOZm_Uh1S6W4fnaEWo,7728
@@ -46,7 +46,7 @@ lgt_jobs/lgt_data/mongo_repository.py,sha256=6Cv5L90jUPgzTbv5vCjsGSOkeCdzVJf0pTR
46
46
  lgt_jobs/services/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
47
47
  lgt_jobs/services/web_client.py,sha256=GLWsJkIC8rv6xLFaLwcMm4EwBlVDu0njORwkZqBJaE4,2086
48
48
  lgt_jobs/templates/new_message.html,sha256=BD_E90akmQ1Wf07wtZAjeK_7DUKRmja5HFHVo_AKI24,6994
49
- leadguru_jobs-0.543.0.dist-info/METADATA,sha256=BSC1hi76_fPJxmBt6C__Sd9VpnWH9vfbEV8VWq6d1IU,1319
50
- leadguru_jobs-0.543.0.dist-info/WHEEL,sha256=GJ7t_kWBFywbagK5eo9IoUwLW6oyOeTKmQ-9iHFVNxQ,92
51
- leadguru_jobs-0.543.0.dist-info/top_level.txt,sha256=rIuw1DqwbnZyeoarBSC-bYeGOhv9mZBs7_afl9q4_JI,9
52
- leadguru_jobs-0.543.0.dist-info/RECORD,,
49
+ leadguru_jobs-0.544.0.dist-info/METADATA,sha256=r1tD2YPghm4E8ID9f5OBosLGwnywHC-VYLAlBLRwdqA,1319
50
+ leadguru_jobs-0.544.0.dist-info/WHEEL,sha256=GJ7t_kWBFywbagK5eo9IoUwLW6oyOeTKmQ-9iHFVNxQ,92
51
+ leadguru_jobs-0.544.0.dist-info/top_level.txt,sha256=rIuw1DqwbnZyeoarBSC-bYeGOhv9mZBs7_afl9q4_JI,9
52
+ leadguru_jobs-0.544.0.dist-info/RECORD,,
@@ -1,3 +1,5 @@
1
+ import asyncio
2
+ import aiohttp
1
3
  import requests
2
4
  import json
3
5
  import io
@@ -22,6 +24,34 @@ class SlackClient:
22
24
  else:
23
25
  self.cookies = cookies
24
26
 
27
+ def join_channels(self, channels):
28
+ loop = asyncio.new_event_loop()
29
+ asyncio.set_event_loop(loop)
30
+ tasks = asyncio.gather(*[self.join_channel_async(channel) for channel in channels])
31
+ results = loop.run_until_complete(tasks)
32
+ loop.close()
33
+ return results
34
+
35
+ def leave_channels(self, channels):
36
+ loop = asyncio.new_event_loop()
37
+ asyncio.set_event_loop(loop)
38
+ tasks = asyncio.gather(*[self.leave_channel_async(channel) for channel in channels])
39
+ results = loop.run_until_complete(tasks)
40
+ loop.close()
41
+ return results
42
+
43
+ async def join_channel_async(self, channel):
44
+ async with aiohttp.ClientSession() as session:
45
+ url = f'{self.base_url}{SlackMethods.conversations_join}?{self.__channel_payload(channel)}'
46
+ async with session.post(url=url, cookies=self.cookies) as response:
47
+ return await response.json()
48
+
49
+ async def leave_channel_async(self, channel):
50
+ async with aiohttp.ClientSession() as session:
51
+ url = f'{self.base_url}{SlackMethods.conversations_leave}?{self.__channel_payload(channel)}'
52
+ async with session.post(url=url, cookies=self.cookies) as response:
53
+ return await response.json()
54
+
25
55
  def upload_file(self, file, file_name):
26
56
  payload = {"content": file, "filename": file_name}
27
57
  return requests.post(f"{self.base_url}{SlackMethods.upload_file}", data=payload,
@@ -158,3 +158,9 @@ class SlackWebClient:
158
158
 
159
159
  def get_file_info(self, file_id: str):
160
160
  return self.client.get_file_info(file_id)
161
+
162
+ def channel_join(self, channels):
163
+ return self.client.join_channels(channels)
164
+
165
+ def channel_leave(self, channels):
166
+ return self.client.leave_channels(channels)