warp-beacon 2.6.46__tar.gz → 2.6.47__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.
- {warp_beacon-2.6.46/warp_beacon.egg-info → warp_beacon-2.6.47}/PKG-INFO +1 -1
- warp_beacon-2.6.47/warp_beacon/__version__.py +2 -0
- {warp_beacon-2.6.46 → warp_beacon-2.6.47}/warp_beacon/telegram/bot.py +18 -34
- {warp_beacon-2.6.46 → warp_beacon-2.6.47/warp_beacon.egg-info}/PKG-INFO +1 -1
- warp_beacon-2.6.46/warp_beacon/__version__.py +0 -2
- {warp_beacon-2.6.46 → warp_beacon-2.6.47}/LICENSE +0 -0
- {warp_beacon-2.6.46 → warp_beacon-2.6.47}/MANIFEST.in +0 -0
- {warp_beacon-2.6.46 → warp_beacon-2.6.47}/README.md +0 -0
- {warp_beacon-2.6.46 → warp_beacon-2.6.47}/assets/placeholder.gif +0 -0
- {warp_beacon-2.6.46 → warp_beacon-2.6.47}/etc/.gitignore +0 -0
- {warp_beacon-2.6.46 → warp_beacon-2.6.47}/etc/accounts.json +0 -0
- {warp_beacon-2.6.46 → warp_beacon-2.6.47}/etc/proxies.json +0 -0
- {warp_beacon-2.6.46 → warp_beacon-2.6.47}/etc/warp_beacon.conf +0 -0
- {warp_beacon-2.6.46 → warp_beacon-2.6.47}/etc/warp_beacon.service +0 -0
- {warp_beacon-2.6.46 → warp_beacon-2.6.47}/pyproject.toml +0 -0
- {warp_beacon-2.6.46 → warp_beacon-2.6.47}/setup.cfg +0 -0
- {warp_beacon-2.6.46 → warp_beacon-2.6.47}/setup.py +0 -0
- {warp_beacon-2.6.46 → warp_beacon-2.6.47}/warp_beacon/__init__.py +0 -0
- {warp_beacon-2.6.46 → warp_beacon-2.6.47}/warp_beacon/compress/__init__.py +0 -0
- {warp_beacon-2.6.46 → warp_beacon-2.6.47}/warp_beacon/compress/video.py +0 -0
- {warp_beacon-2.6.46 → warp_beacon-2.6.47}/warp_beacon/jobs/__init__.py +0 -0
- {warp_beacon-2.6.46 → warp_beacon-2.6.47}/warp_beacon/jobs/abstract.py +0 -0
- {warp_beacon-2.6.46 → warp_beacon-2.6.47}/warp_beacon/jobs/download_job.py +0 -0
- {warp_beacon-2.6.46 → warp_beacon-2.6.47}/warp_beacon/jobs/types.py +0 -0
- {warp_beacon-2.6.46 → warp_beacon-2.6.47}/warp_beacon/jobs/upload_job.py +0 -0
- {warp_beacon-2.6.46 → warp_beacon-2.6.47}/warp_beacon/mediainfo/__init__.py +0 -0
- {warp_beacon-2.6.46 → warp_beacon-2.6.47}/warp_beacon/mediainfo/abstract.py +0 -0
- {warp_beacon-2.6.46 → warp_beacon-2.6.47}/warp_beacon/mediainfo/audio.py +0 -0
- {warp_beacon-2.6.46 → warp_beacon-2.6.47}/warp_beacon/mediainfo/silencer.py +0 -0
- {warp_beacon-2.6.46 → warp_beacon-2.6.47}/warp_beacon/mediainfo/video.py +0 -0
- {warp_beacon-2.6.46 → warp_beacon-2.6.47}/warp_beacon/scheduler/__init__.py +0 -0
- {warp_beacon-2.6.46 → warp_beacon-2.6.47}/warp_beacon/scheduler/instagram_human.py +0 -0
- {warp_beacon-2.6.46 → warp_beacon-2.6.47}/warp_beacon/scheduler/scheduler.py +0 -0
- {warp_beacon-2.6.46 → warp_beacon-2.6.47}/warp_beacon/scraper/__init__.py +0 -0
- {warp_beacon-2.6.46 → warp_beacon-2.6.47}/warp_beacon/scraper/abstract.py +0 -0
- {warp_beacon-2.6.46 → warp_beacon-2.6.47}/warp_beacon/scraper/account_selector.py +0 -0
- {warp_beacon-2.6.46 → warp_beacon-2.6.47}/warp_beacon/scraper/exceptions.py +0 -0
- {warp_beacon-2.6.46 → warp_beacon-2.6.47}/warp_beacon/scraper/fail_handler.py +0 -0
- {warp_beacon-2.6.46 → warp_beacon-2.6.47}/warp_beacon/scraper/instagram/__init__.py +0 -0
- {warp_beacon-2.6.46 → warp_beacon-2.6.47}/warp_beacon/scraper/instagram/captcha.py +0 -0
- {warp_beacon-2.6.46 → warp_beacon-2.6.47}/warp_beacon/scraper/instagram/instagram.py +0 -0
- {warp_beacon-2.6.46 → warp_beacon-2.6.47}/warp_beacon/scraper/link_resolver.py +0 -0
- {warp_beacon-2.6.46 → warp_beacon-2.6.47}/warp_beacon/scraper/utils.py +0 -0
- {warp_beacon-2.6.46 → warp_beacon-2.6.47}/warp_beacon/scraper/youtube/__init__.py +0 -0
- {warp_beacon-2.6.46 → warp_beacon-2.6.47}/warp_beacon/scraper/youtube/abstract.py +0 -0
- {warp_beacon-2.6.46 → warp_beacon-2.6.47}/warp_beacon/scraper/youtube/music.py +0 -0
- {warp_beacon-2.6.46 → warp_beacon-2.6.47}/warp_beacon/scraper/youtube/shorts.py +0 -0
- {warp_beacon-2.6.46 → warp_beacon-2.6.47}/warp_beacon/scraper/youtube/youtube.py +0 -0
- {warp_beacon-2.6.46 → warp_beacon-2.6.47}/warp_beacon/storage/__init__.py +0 -0
- {warp_beacon-2.6.46 → warp_beacon-2.6.47}/warp_beacon/storage/mongo.py +0 -0
- {warp_beacon-2.6.46 → warp_beacon-2.6.47}/warp_beacon/telegram/__init__.py +0 -0
- {warp_beacon-2.6.46 → warp_beacon-2.6.47}/warp_beacon/telegram/caption_shortener.py +0 -0
- {warp_beacon-2.6.46 → warp_beacon-2.6.47}/warp_beacon/telegram/handlers.py +0 -0
- {warp_beacon-2.6.46 → warp_beacon-2.6.47}/warp_beacon/telegram/placeholder_message.py +0 -0
- {warp_beacon-2.6.46 → warp_beacon-2.6.47}/warp_beacon/telegram/progress_file_reader.py +0 -0
- {warp_beacon-2.6.46 → warp_beacon-2.6.47}/warp_beacon/telegram/utils.py +0 -0
- {warp_beacon-2.6.46 → warp_beacon-2.6.47}/warp_beacon/uploader/__init__.py +0 -0
- {warp_beacon-2.6.46 → warp_beacon-2.6.47}/warp_beacon/warp_beacon.py +0 -0
- {warp_beacon-2.6.46 → warp_beacon-2.6.47}/warp_beacon/yt_auth.py +0 -0
- {warp_beacon-2.6.46 → warp_beacon-2.6.47}/warp_beacon.egg-info/SOURCES.txt +0 -0
- {warp_beacon-2.6.46 → warp_beacon-2.6.47}/warp_beacon.egg-info/dependency_links.txt +0 -0
- {warp_beacon-2.6.46 → warp_beacon-2.6.47}/warp_beacon.egg-info/entry_points.txt +0 -0
- {warp_beacon-2.6.46 → warp_beacon-2.6.47}/warp_beacon.egg-info/requires.txt +0 -0
- {warp_beacon-2.6.46 → warp_beacon-2.6.47}/warp_beacon.egg-info/top_level.txt +0 -0
@@ -227,7 +227,7 @@ class Bot(object):
|
|
227
227
|
|
228
228
|
return caption
|
229
229
|
|
230
|
-
def build_tg_args(self, job: UploadJob
|
230
|
+
def build_tg_args(self, job: UploadJob) -> dict:
|
231
231
|
args = {}
|
232
232
|
if job.media_type == JobType.VIDEO:
|
233
233
|
if job.tg_file_id:
|
@@ -243,7 +243,7 @@ class Bot(object):
|
|
243
243
|
else:
|
244
244
|
if job.placeholder_message_id:
|
245
245
|
args["media"] = InputMediaVideo(
|
246
|
-
media=
|
246
|
+
media=job.local_media_path,
|
247
247
|
supports_streaming=True,
|
248
248
|
width=job.media_info["width"],
|
249
249
|
height=job.media_info["height"],
|
@@ -252,7 +252,7 @@ class Bot(object):
|
|
252
252
|
caption=self.build_signature_caption(job)
|
253
253
|
)
|
254
254
|
else:
|
255
|
-
args["video"] =
|
255
|
+
args["video"] = job.local_media_path
|
256
256
|
args["supports_streaming"] = True
|
257
257
|
args["width"] = job.media_info["width"]
|
258
258
|
args["height"] = job.media_info["height"]
|
@@ -274,11 +274,11 @@ class Bot(object):
|
|
274
274
|
else:
|
275
275
|
if job.placeholder_message_id:
|
276
276
|
args["media"] = InputMediaPhoto(
|
277
|
-
media=
|
277
|
+
media=job.local_media_path,
|
278
278
|
caption=self.build_signature_caption(job)
|
279
279
|
)
|
280
280
|
else:
|
281
|
-
args["photo"] =
|
281
|
+
args["photo"] = job.local_media_path
|
282
282
|
args["caption"] = self.build_signature_caption(job)
|
283
283
|
|
284
284
|
args["file_name"] = os.path.basename(job.local_media_path)
|
@@ -294,7 +294,7 @@ class Bot(object):
|
|
294
294
|
else:
|
295
295
|
if job.placeholder_message_id:
|
296
296
|
args["media"] = InputMediaAudio(
|
297
|
-
media=
|
297
|
+
media=job.local_media_path,
|
298
298
|
performer=job.media_info["performer"],
|
299
299
|
thumb=job.media_info["thumb"],
|
300
300
|
duration=round(job.media_info["duration"]),
|
@@ -302,7 +302,7 @@ class Bot(object):
|
|
302
302
|
caption=self.build_signature_caption(job)
|
303
303
|
)
|
304
304
|
else:
|
305
|
-
args["audio"] =
|
305
|
+
args["audio"] = job.local_media_path
|
306
306
|
args["performer"] = job.media_info["performer"]
|
307
307
|
args["thumb"] = job.media_info["thumb"]
|
308
308
|
args["duration"] = round(job.media_info["duration"])
|
@@ -323,7 +323,7 @@ class Bot(object):
|
|
323
323
|
else:
|
324
324
|
if job.placeholder_message_id:
|
325
325
|
args["media"] = InputMediaAnimation(
|
326
|
-
media=
|
326
|
+
media=job.local_media_path,
|
327
327
|
thumb=job.media_info["thumb"],
|
328
328
|
duration=round(job.media_info["duration"]),
|
329
329
|
width=job.media_info["width"],
|
@@ -331,7 +331,7 @@ class Bot(object):
|
|
331
331
|
caption=self.build_signature_caption(job)
|
332
332
|
)
|
333
333
|
else:
|
334
|
-
args["animation"] =
|
334
|
+
args["animation"] = job.local_media_path
|
335
335
|
args["width"] = job.media_info["width"]
|
336
336
|
args["height"] = job.media_info["height"]
|
337
337
|
args["duration"] = round(job.media_info["duration"])
|
@@ -364,7 +364,7 @@ class Bot(object):
|
|
364
364
|
for j in chunk:
|
365
365
|
if j.media_type == JobType.VIDEO:
|
366
366
|
vid = InputMediaVideo(
|
367
|
-
media=
|
367
|
+
media=j.local_media_path,
|
368
368
|
supports_streaming=True,
|
369
369
|
width=j.media_info["width"],
|
370
370
|
height=j.media_info["height"],
|
@@ -375,7 +375,7 @@ class Bot(object):
|
|
375
375
|
tg_chunk.append(vid)
|
376
376
|
elif j.media_type == JobType.IMAGE:
|
377
377
|
photo = InputMediaPhoto(
|
378
|
-
media=
|
378
|
+
media=j.local_media_path,
|
379
379
|
caption=self.build_signature_caption(job)
|
380
380
|
)
|
381
381
|
tg_chunk.append(photo)
|
@@ -405,9 +405,6 @@ class Bot(object):
|
|
405
405
|
|
406
406
|
return args
|
407
407
|
|
408
|
-
def progress_callback(self, filename: str, current: int, total: int) -> None:
|
409
|
-
logging.info("[%s] Uploaded %.1f%%", filename, current * 100 / total)
|
410
|
-
|
411
408
|
async def upload_job(self, job: UploadJob) -> list[str]:
|
412
409
|
tg_file_ids = []
|
413
410
|
try:
|
@@ -421,8 +418,7 @@ class Bot(object):
|
|
421
418
|
await Utils.ensure_me_loaded(self.client)
|
422
419
|
if job.placeholder_message_id:
|
423
420
|
try:
|
424
|
-
|
425
|
-
reply_message = await self.client.edit_message_media(**self.build_tg_args(job, f))
|
421
|
+
reply_message = await self.client.edit_message_media(**self.build_tg_args(job))
|
426
422
|
except MessageIdInvalid:
|
427
423
|
logging.warning("Placeholder message not found. Looks like placeholder message was deleted by administrator.")
|
428
424
|
job.placeholder_message_id = None
|
@@ -435,41 +431,29 @@ class Bot(object):
|
|
435
431
|
JobType.ANIMATION: self.client.send_animation
|
436
432
|
}
|
437
433
|
try:
|
438
|
-
|
439
|
-
reply_message = await send_funcs[job.media_type](**self.build_tg_args(job, f))
|
434
|
+
reply_message = await send_funcs[job.media_type](**self.build_tg_args(job))
|
440
435
|
except ValueError as e:
|
441
436
|
err_text = str(e)
|
442
437
|
if "Expected" in err_text:
|
443
438
|
logging.warning("Expectations exceeded reality.")
|
444
439
|
logging.warning(err_text)
|
445
440
|
expectation, reality = Utils.parse_expected_patronum_error(err_text)
|
446
|
-
|
447
|
-
|
448
|
-
|
449
|
-
reply_message = await send_funcs[reality](**job_args)
|
441
|
+
job_args = self.build_tg_args(job)
|
442
|
+
job_args[reality.value.lower()] = job_args.pop(expectation.value.lower())
|
443
|
+
reply_message = await send_funcs[reality](**job_args)
|
450
444
|
|
451
445
|
tg_file_id = Utils.extract_file_id(reply_message)
|
452
446
|
tg_file_ids.append(tg_file_id)
|
453
447
|
job.tg_file_id = tg_file_id
|
454
448
|
logging.info("Uploaded media file with type '%s' tg_file_id is '%s'", job.media_type.value, job.tg_file_id)
|
455
449
|
elif job.media_type == JobType.COLLECTION:
|
456
|
-
#uploaded_files = await self.upload_with_progress(job)
|
457
450
|
col_job_args = self.build_tg_args(job)
|
458
451
|
sent_messages = []
|
459
452
|
snd_grp_options = {"chat_id": job.chat_id, "reply_to_message_id": job.message_id}
|
460
453
|
for i, media_chunk in enumerate(col_job_args["media"]):
|
461
454
|
snd_grp_options["media"] = media_chunk
|
462
|
-
messages =
|
463
|
-
|
464
|
-
messages = await self.client.send_media_group(**snd_grp_options)
|
465
|
-
finally:
|
466
|
-
try:
|
467
|
-
for med in snd_grp_options["media"]:
|
468
|
-
med.media.close()
|
469
|
-
except AttributeError:
|
470
|
-
pass
|
471
|
-
if messages:
|
472
|
-
sent_messages += messages
|
455
|
+
messages = await self.client.send_media_group(**snd_grp_options)
|
456
|
+
sent_messages += messages
|
473
457
|
if job.media_collection:
|
474
458
|
for j, _ in enumerate(media_chunk):
|
475
459
|
tg_file_id = Utils.extract_file_id(messages[j])
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|