warp-beacon 2.6.0__tar.gz → 2.6.2__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. {warp_beacon-2.6.0/warp_beacon.egg-info → warp_beacon-2.6.2}/PKG-INFO +1 -1
  2. warp_beacon-2.6.2/warp_beacon/__version__.py +2 -0
  3. {warp_beacon-2.6.0 → warp_beacon-2.6.2}/warp_beacon/telegram/bot.py +27 -17
  4. {warp_beacon-2.6.0 → warp_beacon-2.6.2/warp_beacon.egg-info}/PKG-INFO +1 -1
  5. warp_beacon-2.6.0/warp_beacon/__version__.py +0 -2
  6. {warp_beacon-2.6.0 → warp_beacon-2.6.2}/LICENSE +0 -0
  7. {warp_beacon-2.6.0 → warp_beacon-2.6.2}/MANIFEST.in +0 -0
  8. {warp_beacon-2.6.0 → warp_beacon-2.6.2}/README.md +0 -0
  9. {warp_beacon-2.6.0 → warp_beacon-2.6.2}/assets/placeholder.gif +0 -0
  10. {warp_beacon-2.6.0 → warp_beacon-2.6.2}/etc/.gitignore +0 -0
  11. {warp_beacon-2.6.0 → warp_beacon-2.6.2}/etc/accounts.json +0 -0
  12. {warp_beacon-2.6.0 → warp_beacon-2.6.2}/etc/proxies.json +0 -0
  13. {warp_beacon-2.6.0 → warp_beacon-2.6.2}/etc/warp_beacon.conf +0 -0
  14. {warp_beacon-2.6.0 → warp_beacon-2.6.2}/etc/warp_beacon.service +0 -0
  15. {warp_beacon-2.6.0 → warp_beacon-2.6.2}/pyproject.toml +0 -0
  16. {warp_beacon-2.6.0 → warp_beacon-2.6.2}/setup.cfg +0 -0
  17. {warp_beacon-2.6.0 → warp_beacon-2.6.2}/setup.py +0 -0
  18. {warp_beacon-2.6.0 → warp_beacon-2.6.2}/warp_beacon/__init__.py +0 -0
  19. {warp_beacon-2.6.0 → warp_beacon-2.6.2}/warp_beacon/compress/__init__.py +0 -0
  20. {warp_beacon-2.6.0 → warp_beacon-2.6.2}/warp_beacon/compress/video.py +0 -0
  21. {warp_beacon-2.6.0 → warp_beacon-2.6.2}/warp_beacon/jobs/__init__.py +0 -0
  22. {warp_beacon-2.6.0 → warp_beacon-2.6.2}/warp_beacon/jobs/abstract.py +0 -0
  23. {warp_beacon-2.6.0 → warp_beacon-2.6.2}/warp_beacon/jobs/download_job.py +0 -0
  24. {warp_beacon-2.6.0 → warp_beacon-2.6.2}/warp_beacon/jobs/types.py +0 -0
  25. {warp_beacon-2.6.0 → warp_beacon-2.6.2}/warp_beacon/jobs/upload_job.py +0 -0
  26. {warp_beacon-2.6.0 → warp_beacon-2.6.2}/warp_beacon/mediainfo/__init__.py +0 -0
  27. {warp_beacon-2.6.0 → warp_beacon-2.6.2}/warp_beacon/mediainfo/abstract.py +0 -0
  28. {warp_beacon-2.6.0 → warp_beacon-2.6.2}/warp_beacon/mediainfo/audio.py +0 -0
  29. {warp_beacon-2.6.0 → warp_beacon-2.6.2}/warp_beacon/mediainfo/silencer.py +0 -0
  30. {warp_beacon-2.6.0 → warp_beacon-2.6.2}/warp_beacon/mediainfo/video.py +0 -0
  31. {warp_beacon-2.6.0 → warp_beacon-2.6.2}/warp_beacon/scheduler/__init__.py +0 -0
  32. {warp_beacon-2.6.0 → warp_beacon-2.6.2}/warp_beacon/scheduler/instagram_human.py +0 -0
  33. {warp_beacon-2.6.0 → warp_beacon-2.6.2}/warp_beacon/scheduler/scheduler.py +0 -0
  34. {warp_beacon-2.6.0 → warp_beacon-2.6.2}/warp_beacon/scraper/__init__.py +0 -0
  35. {warp_beacon-2.6.0 → warp_beacon-2.6.2}/warp_beacon/scraper/abstract.py +0 -0
  36. {warp_beacon-2.6.0 → warp_beacon-2.6.2}/warp_beacon/scraper/account_selector.py +0 -0
  37. {warp_beacon-2.6.0 → warp_beacon-2.6.2}/warp_beacon/scraper/exceptions.py +0 -0
  38. {warp_beacon-2.6.0 → warp_beacon-2.6.2}/warp_beacon/scraper/fail_handler.py +0 -0
  39. {warp_beacon-2.6.0 → warp_beacon-2.6.2}/warp_beacon/scraper/instagram/__init__.py +0 -0
  40. {warp_beacon-2.6.0 → warp_beacon-2.6.2}/warp_beacon/scraper/instagram/instagram.py +0 -0
  41. {warp_beacon-2.6.0 → warp_beacon-2.6.2}/warp_beacon/scraper/link_resolver.py +0 -0
  42. {warp_beacon-2.6.0 → warp_beacon-2.6.2}/warp_beacon/scraper/youtube/__init__.py +0 -0
  43. {warp_beacon-2.6.0 → warp_beacon-2.6.2}/warp_beacon/scraper/youtube/abstract.py +0 -0
  44. {warp_beacon-2.6.0 → warp_beacon-2.6.2}/warp_beacon/scraper/youtube/music.py +0 -0
  45. {warp_beacon-2.6.0 → warp_beacon-2.6.2}/warp_beacon/scraper/youtube/shorts.py +0 -0
  46. {warp_beacon-2.6.0 → warp_beacon-2.6.2}/warp_beacon/scraper/youtube/youtube.py +0 -0
  47. {warp_beacon-2.6.0 → warp_beacon-2.6.2}/warp_beacon/storage/__init__.py +0 -0
  48. {warp_beacon-2.6.0 → warp_beacon-2.6.2}/warp_beacon/storage/mongo.py +0 -0
  49. {warp_beacon-2.6.0 → warp_beacon-2.6.2}/warp_beacon/telegram/__init__.py +0 -0
  50. {warp_beacon-2.6.0 → warp_beacon-2.6.2}/warp_beacon/telegram/caption_shortener.py +0 -0
  51. {warp_beacon-2.6.0 → warp_beacon-2.6.2}/warp_beacon/telegram/handlers.py +0 -0
  52. {warp_beacon-2.6.0 → warp_beacon-2.6.2}/warp_beacon/telegram/placeholder_message.py +0 -0
  53. {warp_beacon-2.6.0 → warp_beacon-2.6.2}/warp_beacon/telegram/utils.py +0 -0
  54. {warp_beacon-2.6.0 → warp_beacon-2.6.2}/warp_beacon/uploader/__init__.py +0 -0
  55. {warp_beacon-2.6.0 → warp_beacon-2.6.2}/warp_beacon/warp_beacon.py +0 -0
  56. {warp_beacon-2.6.0 → warp_beacon-2.6.2}/warp_beacon/yt_auth.py +0 -0
  57. {warp_beacon-2.6.0 → warp_beacon-2.6.2}/warp_beacon.egg-info/SOURCES.txt +0 -0
  58. {warp_beacon-2.6.0 → warp_beacon-2.6.2}/warp_beacon.egg-info/dependency_links.txt +0 -0
  59. {warp_beacon-2.6.0 → warp_beacon-2.6.2}/warp_beacon.egg-info/entry_points.txt +0 -0
  60. {warp_beacon-2.6.0 → warp_beacon-2.6.2}/warp_beacon.egg-info/requires.txt +0 -0
  61. {warp_beacon-2.6.0 → warp_beacon-2.6.2}/warp_beacon.egg-info/top_level.txt +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: warp_beacon
3
- Version: 2.6.0
3
+ Version: 2.6.2
4
4
  Summary: Telegram bot for expanding external media links
5
5
  Home-page: https://github.com/sb0y/warp_beacon
6
6
  Author: Andrey Bagrintsev
@@ -0,0 +1,2 @@
1
+ __version__ = "2.6.2"
2
+
@@ -1,5 +1,6 @@
1
1
  import os
2
2
  import signal
3
+ import asyncio
3
4
  from typing import Optional, Union
4
5
 
5
6
  import logging
@@ -29,6 +30,7 @@ from warp_beacon.telegram.caption_shortener import CaptionShortner
29
30
  from warp_beacon.scheduler.scheduler import IGScheduler
30
31
 
31
32
  class Bot(object):
33
+ should_exit = None
32
34
  storage = None
33
35
  uploader = None
34
36
  downloader = None
@@ -37,6 +39,7 @@ class Bot(object):
37
39
  handlers = None
38
40
  placeholder = None
39
41
  scheduler = None
42
+ me = None
40
43
 
41
44
  def __init__(self, tg_bot_name: str, tg_token: str, tg_api_id: str, tg_api_hash: str) -> None:
42
45
  # Enable logging
@@ -46,10 +49,12 @@ class Bot(object):
46
49
 
47
50
  logging.getLogger("pyrogram").setLevel(logging.ERROR)
48
51
 
52
+ logging.info("Starting Warp Beacon version '%s' ...", __version__)
53
+
49
54
  db_connect = DBClient()
50
55
  self.storage = Storage(db_connect)
51
56
 
52
- logging.info("Starting Warp Beacon version '%s' ...", __version__)
57
+ self.should_exit = asyncio.Event()
53
58
 
54
59
  workers_amount = min(32, os.cpu_count() + 4)
55
60
 
@@ -64,14 +69,6 @@ class Bot(object):
64
69
  workers=int(os.environ.get("TG_WORKERS_POOL_SIZE", default=workers_amount))
65
70
  )
66
71
 
67
- this = self
68
- def __terminator() -> None:
69
- this.stop()
70
-
71
- stop_signals = (signal.SIGINT, signal.SIGTERM, signal.SIGABRT)
72
- for sig in stop_signals:
73
- self.client.loop.add_signal_handler(sig, __terminator)
74
-
75
72
  self.uploader = AsyncUploader(
76
73
  storage=self.storage,
77
74
  admin_message_callback=self.send_text_to_admin,
@@ -86,10 +83,6 @@ class Bot(object):
86
83
 
87
84
  self.scheduler = IGScheduler(self.downloader)
88
85
 
89
- self.downloader.start()
90
- self.uploader.start()
91
- self.scheduler.start()
92
-
93
86
  self.handlers = Handlers(self)
94
87
 
95
88
  self.client.add_handler(MessageHandler(self.handlers.start, filters.command("start")))
@@ -102,20 +95,37 @@ class Bot(object):
102
95
 
103
96
  self.placeholder = PlaceholderMessage(self)
104
97
 
105
- self.client.run()
106
-
107
98
  def __del__(self) -> None:
108
99
  self.stop()
109
- logging.info("Warp Beacon terminated.")
110
100
 
111
101
  def start(self) -> None:
112
- self.client.run()
102
+ self.client.run(self.run())
103
+
104
+ async def run(self) -> None:
105
+ loop = asyncio.get_running_loop()
106
+ for sig in (signal.SIGINT, signal.SIGTERM, signal.SIGABRT):
107
+ loop.add_signal_handler(sig, self.should_exit.set)
108
+ async with self.client:
109
+ self.me = await self.client.get_me()
110
+ self.client.me = self.me
111
+ if self.me.is_premium:
112
+ os.environ["TG_PREMIUM"] = "true"
113
+ self.downloader.start()
114
+ self.uploader.start()
115
+ self.scheduler.start()
116
+ logging.info("Warp Beacon version '%s' started", __version__)
117
+ await self.should_exit.wait()
118
+
119
+ self.stop()
120
+ logging.info("Warp Beacon version '%s' terminated.", __version__)
113
121
 
114
122
  def stop(self) -> None:
115
123
  logging.info("Warp Beacon is terminating. This may take a while ...")
116
124
  self.scheduler.stop()
117
125
  self.downloader.stop_all()
118
126
  self.uploader.stop_all()
127
+ if self.client and self.client.is_initialized and self.client.is_connected:
128
+ asyncio.run_coroutine_threadsafe(self.client.stop(), self.client.loop)
119
129
 
120
130
  async def send_text(self, chat_id: int, text: str, reply_id: int = None) -> int:
121
131
  try:
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: warp_beacon
3
- Version: 2.6.0
3
+ Version: 2.6.2
4
4
  Summary: Telegram bot for expanding external media links
5
5
  Home-page: https://github.com/sb0y/warp_beacon
6
6
  Author: Andrey Bagrintsev
@@ -1,2 +0,0 @@
1
- __version__ = "2.6.0"
2
-
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes