warp-beacon 2.6.10__py3-none-any.whl → 2.6.12__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,2 +1,2 @@
1
- __version__ = "2.6.10"
1
+ __version__ = "2.6.12"
2
2
 
@@ -1,16 +1,14 @@
1
- from typing import TypedDict
1
+ #from typing import TypedDict
2
2
  from typing_extensions import Unpack
3
3
 
4
4
  from warp_beacon.jobs.upload_job import UploadJob
5
5
  from warp_beacon.jobs.abstract import AbstractJob, JobSettings
6
6
 
7
- import logging
7
+ #import logging
8
8
 
9
9
  class DownloadJob(AbstractJob):
10
10
  def __init__(self, **kwargs: Unpack[JobSettings]) -> None:
11
11
  super(DownloadJob, self).__init__(**kwargs)
12
- def __del__(self) -> None:
13
- pass
14
12
 
15
13
  @staticmethod
16
14
  def build(**kwargs: Unpack[JobSettings]) -> "DownloadJob":
@@ -20,7 +18,7 @@ class DownloadJob(AbstractJob):
20
18
  d = self.to_dict()
21
19
  d.update(kwargs)
22
20
  if "media_collection" in d:
23
- for index, chunk in enumerate(d["media_collection"]):
24
- for k, v in enumerate(d["media_collection"][index]):
21
+ for index, _ in enumerate(d["media_collection"]):
22
+ for k, _ in enumerate(d["media_collection"][index]):
25
23
  d["media_collection"][index][k] = UploadJob.build(**d["media_collection"][index][k])
26
24
  return UploadJob.build(**d)
@@ -29,17 +29,20 @@ PROXY_FILE = os.environ.get("PROXY_FILE", default="/var/warp_beacon/proxies.json
29
29
  class AsyncDownloader(object):
30
30
  TG_FILE_LIMIT = 2147483648 # 2 GiB
31
31
  __JOE_BIDEN_WAKEUP = None
32
- workers = []
32
+ workers = None
33
33
  allow_loop = None
34
- job_queue = multiprocessing.Queue()
34
+ job_queue = None
35
35
  uploader = None
36
36
  workers_count = 0
37
- auth_event = multiprocessing.Event()
37
+ auth_event = None
38
38
  manager = None
39
39
  acc_selector = None
40
40
  scheduler = None
41
41
 
42
42
  def __init__(self, uploader: AsyncUploader, workers_count: int) -> None:
43
+ self.workers = []
44
+ self.job_queue = multiprocessing.Queue()
45
+ self.auth_event = multiprocessing.Event()
43
46
  self.manager = multiprocessing.Manager()
44
47
  self.allow_loop = self.manager.Value('i', 1)
45
48
  self.acc_selector = AccountSelector(self.manager, ACC_FILE, PROXY_FILE)
@@ -78,6 +78,9 @@ class YoutubeScraper(YoutubeAbstract):
78
78
 
79
79
  video_stream = yt.streams.filter(adaptive=True, file_extension='mp4', only_video=True).order_by('resolution').desc().first()
80
80
  audio_stream = yt.streams.filter(adaptive=True, file_extension='mp4', only_audio=True).order_by('abr').desc().first()
81
+ size_in_bytes = video_stream.filesize + audio_stream.filesize
82
+ if size_in_bytes > 2147483648: # 2 GiB
83
+ video_stream = yt.streams.filter(adaptive=True, file_extension='mp4', only_video=True, res='720p').order_by('resolution').desc().first()
81
84
 
82
85
  local_video_file = video_stream.download(
83
86
  output_path=self.DOWNLOAD_DIR,
@@ -161,7 +164,30 @@ class YoutubeScraper(YoutubeAbstract):
161
164
  def _download_yt_dlp(self, url: str, thumbnail: Optional[io.BytesIO] = None, timeout: int = 60) -> list:
162
165
  res = []
163
166
  with self.build_yt_dlp(timeout) as ydl:
164
- info = ydl.extract_info(url, download=True)
167
+ info = ydl.extract_info(url, download=False)
168
+ formats = info.get('formats', [])
169
+
170
+ dl_format = {}
171
+ for f in sorted(formats, key=lambda x: (x.get('height', 0) or 0), reverse=True):
172
+ if f.get('vcodec', '') != 'none' and f.get('acodec', '') != 'none' and f.get('ext', '') == 'mp4':
173
+ dl_format = f
174
+ break
175
+
176
+ filesize = dl_format.get('filesize', 0) or dl_format.get('filesize_approx', 0)
177
+ if filesize:
178
+ if filesize > 2147483648: # 2 GiB
179
+ logging.warning("Max resolution exceeding TG limits")
180
+ for f in sorted(formats, key=lambda x: (x.get('height', 0) or 0), reverse=True):
181
+ if (f.get('vcodec', '') != 'none' and f.get('acodec', '') != 'none'
182
+ and (f.get('height', 0) or 0) <= 720 and f.get('ext', '') == 'mp4'):
183
+ alt_filesize = f.get('filesize', 0) or f.get('filesize_approx', 0)
184
+ if alt_filesize: #and alt_filesize <= max_size_bytes:
185
+ dl_format = f
186
+ break
187
+ else:
188
+ logging.warning("Unknown filesize!")
189
+ ydl.params['format'] = dl_format['format_id']
190
+ ydl.download([url])
165
191
  local_file = ydl.prepare_filename(info)
166
192
  logging.debug("Temp filename: '%s'", local_file)
167
193
  res.append({
@@ -172,4 +198,4 @@ class YoutubeScraper(YoutubeAbstract):
172
198
  "media_type": JobType.VIDEO
173
199
  })
174
200
 
175
- return res
201
+ return res
@@ -2,13 +2,17 @@ import os
2
2
 
3
3
  from warp_beacon.telegram.bot import Bot
4
4
 
5
- import logging
5
+ #import logging
6
6
 
7
7
  def main() -> None:
8
+ if __name__ == "__main__":
9
+ run()
10
+
11
+ def run() -> None:
8
12
  bot = Bot(
9
13
  tg_bot_name=os.environ.get("TG_BOT_NAME", default=None),
10
14
  tg_token=os.environ.get("TG_TOKEN", default=None),
11
15
  tg_api_id=os.environ.get("TG_API_ID", default=None),
12
16
  tg_api_hash=os.environ.get("TG_API_HASH", default=None)
13
17
  )
14
- bot.start()
18
+ bot.start()
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: warp_beacon
3
- Version: 2.6.10
3
+ Version: 2.6.12
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
@@ -4,14 +4,14 @@ var/warp_beacon/accounts.json,sha256=OsXdncs6h88xrF_AP6_WDCK1waGBn9SR-uYdIeK37GM
4
4
  var/warp_beacon/placeholder.gif,sha256=cE5CGJVaop4Sx21zx6j4AyoHU0ncmvQuS2o6hJfEH88,6064
5
5
  var/warp_beacon/proxies.json,sha256=VnjlQDXumOEq72ZFjbh6IqHS1TEHqn8HPYAZqWCeSIA,95
6
6
  warp_beacon/__init__.py,sha256=_rThNODmz0nDp_n4mWo_HKaNFE5jk1_7cRhHyYaencI,163
7
- warp_beacon/__version__.py,sha256=SFrcGmw0WP5isDp-80uATES8jnBoMALQAAKg7kvyG5o,24
8
- warp_beacon/warp_beacon.py,sha256=7KEtZDj-pdhtl6m-zFLsSojs1ZR4o7L0xbqtdmYPvfE,342
7
+ warp_beacon/__version__.py,sha256=ruQkBRVLbw6iV2ajJRlRbGISwTdgzTB7PWxto8ttvxo,24
8
+ warp_beacon/warp_beacon.py,sha256=URJcqy1My3t7pzZgY-PFOBBzgIQE3_IzQ926VWd2PMo,398
9
9
  warp_beacon/yt_auth.py,sha256=GUTKqYr_tzDC-07Lx_ahWXSag8EyLxXBUnQbDBIkEmk,6022
10
10
  warp_beacon/compress/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
11
11
  warp_beacon/compress/video.py,sha256=_PDMVYCyzLYxHv1uZmmzGcG_8rjaZr7BTXsXTTy_oS4,2846
12
12
  warp_beacon/jobs/__init__.py,sha256=ED8_tPle4iL4kqNW0apAVkgNQtRRTnYfAJwBjO1g0JY,180
13
13
  warp_beacon/jobs/abstract.py,sha256=IF2bKx2DuuH_AP07YAvFxxqnuxjIwg2Glsr8TpWX6Z0,3179
14
- warp_beacon/jobs/download_job.py,sha256=5HiPcnJppFMhO14___3eSkoMygM3y-vhpGkMAuNhK7s,854
14
+ warp_beacon/jobs/download_job.py,sha256=tz_4rKEqnJ9yrtHeDwPGjxoDrePrGhhjCTG5CK5rr-Q,817
15
15
  warp_beacon/jobs/types.py,sha256=Ae8zINgbs7cOcYkYoOCOACA7duyhnIGMQAJ_SJB1QRQ,176
16
16
  warp_beacon/jobs/upload_job.py,sha256=_ul4psPej1jLEs-BMcMR80GbXDSmm38jE9yoZtecclY,741
17
17
  warp_beacon/mediainfo/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
@@ -22,7 +22,7 @@ warp_beacon/mediainfo/video.py,sha256=UBZrhTN5IDI-aYu6tsJEILo9nFkjHhkldGVFmvV7tE
22
22
  warp_beacon/scheduler/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
23
23
  warp_beacon/scheduler/instagram_human.py,sha256=xbh37egaTiSOasIMibpF0n9xwmWbq5ktGyNglyZQpvc,5673
24
24
  warp_beacon/scheduler/scheduler.py,sha256=9OCh7Ta4wY_aTHGAOOZmaKXg56Ftx1N_aV1g6E3ZLKA,4941
25
- warp_beacon/scraper/__init__.py,sha256=aL3YqIvOaQvrfTTQLP5srgyfpk19xYAH6oot_BT8tv0,18600
25
+ warp_beacon/scraper/__init__.py,sha256=KOPUf5b8K-QwoMLzRTfeUXk0M02tzTn5OM5ySrF23T8,18671
26
26
  warp_beacon/scraper/abstract.py,sha256=CiOyKCxVYWhPnOUpLAVIRNuHBftN6gmxqATdhjzkaS4,2852
27
27
  warp_beacon/scraper/account_selector.py,sha256=mYNxAyAJj4ie9wMMkfb7ONjvAicS8xPEfE3iIe4gCog,6965
28
28
  warp_beacon/scraper/exceptions.py,sha256=EKwoF0oH2xZWbNU-v8DOaWK5skKwa3s1yTIBdlcfMpc,1452
@@ -35,7 +35,7 @@ warp_beacon/scraper/youtube/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMp
35
35
  warp_beacon/scraper/youtube/abstract.py,sha256=QiifUOEhMMIobmBMyqgReNZ-m0sjhzhM9S0hPgiBk1s,12527
36
36
  warp_beacon/scraper/youtube/music.py,sha256=5AeSBQyUgVCJT2hoBCV2WvlyuV9US09SYJhmBG_P9F8,2755
37
37
  warp_beacon/scraper/youtube/shorts.py,sha256=1GtoYUlxAwcgSQcn80u5ehNJytH5AN5dPOicmX-XD8E,1705
38
- warp_beacon/scraper/youtube/youtube.py,sha256=ZjLv14l-ZeuJQXbZ88GbiXB276SmiGU3i8gUh6b-s60,5983
38
+ warp_beacon/scraper/youtube/youtube.py,sha256=x9v9p1coA9TvBhxjNAofGu4UBkAEdYPE2ePRnU-5tK0,7233
39
39
  warp_beacon/storage/__init__.py,sha256=0Vajd0oITKJfu2vmNx5uQSt3-L6vwIvUYWJo8HZCjco,3398
40
40
  warp_beacon/storage/mongo.py,sha256=qC4ZiO8XXvPnP0rJwz4CJx42pqFsyAjCiW10W5QdT6E,527
41
41
  warp_beacon/telegram/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
@@ -45,9 +45,9 @@ warp_beacon/telegram/handlers.py,sha256=uvR6TPHSqdSxigp3wR-ewiE6t3TvVcbVLVcYGwkg
45
45
  warp_beacon/telegram/placeholder_message.py,sha256=wN9-BRiyrtHG-EvXtZkGJHt2CX71munQ57ITttjt0mw,6400
46
46
  warp_beacon/telegram/utils.py,sha256=1Lq67aRylVJzbwSyvAgjPAGjJZFATkICvAj3TJGuJiM,4635
47
47
  warp_beacon/uploader/__init__.py,sha256=e75mOcC0vrUVjrTNMQzVUTgXGdGo4J6n8t5doOnYG5I,5616
48
- warp_beacon-2.6.10.dist-info/licenses/LICENSE,sha256=xx0jnfkXJvxRnG63LTGOxlggYnIysveWIZ6H3PNdCrQ,11357
49
- warp_beacon-2.6.10.dist-info/METADATA,sha256=vnGbP5mBVoQmeOOyTv12i6eV2lWyPQVr8ls1gt-C1o8,22706
50
- warp_beacon-2.6.10.dist-info/WHEEL,sha256=ck4Vq1_RXyvS4Jt6SI0Vz6fyVs4GWg7AINwpsaGEgPE,91
51
- warp_beacon-2.6.10.dist-info/entry_points.txt,sha256=eSB61Rb89d56WY0O-vEIQwkn18J-4CMrJcLA_R_8h3g,119
52
- warp_beacon-2.6.10.dist-info/top_level.txt,sha256=4ML0-mXsezLtRXyxQUntL_ktc5HX9npTeQWzvV8kFvA,1161
53
- warp_beacon-2.6.10.dist-info/RECORD,,
48
+ warp_beacon-2.6.12.dist-info/licenses/LICENSE,sha256=xx0jnfkXJvxRnG63LTGOxlggYnIysveWIZ6H3PNdCrQ,11357
49
+ warp_beacon-2.6.12.dist-info/METADATA,sha256=iKLTn_TmWErX6HJmftgoqcYam2mnkmBkCH0Dd3E98nw,22706
50
+ warp_beacon-2.6.12.dist-info/WHEEL,sha256=ck4Vq1_RXyvS4Jt6SI0Vz6fyVs4GWg7AINwpsaGEgPE,91
51
+ warp_beacon-2.6.12.dist-info/entry_points.txt,sha256=eSB61Rb89d56WY0O-vEIQwkn18J-4CMrJcLA_R_8h3g,119
52
+ warp_beacon-2.6.12.dist-info/top_level.txt,sha256=4ML0-mXsezLtRXyxQUntL_ktc5HX9npTeQWzvV8kFvA,1161
53
+ warp_beacon-2.6.12.dist-info/RECORD,,