warp-beacon 2.6.15__tar.gz → 2.6.17__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 (62) hide show
  1. {warp_beacon-2.6.15/warp_beacon.egg-info → warp_beacon-2.6.17}/PKG-INFO +1 -1
  2. warp_beacon-2.6.17/warp_beacon/__version__.py +2 -0
  3. {warp_beacon-2.6.15 → warp_beacon-2.6.17}/warp_beacon/scraper/__init__.py +18 -18
  4. {warp_beacon-2.6.15 → warp_beacon-2.6.17}/warp_beacon/scraper/account_selector.py +24 -0
  5. {warp_beacon-2.6.15 → warp_beacon-2.6.17}/warp_beacon/scraper/fail_handler.py +2 -4
  6. {warp_beacon-2.6.15 → warp_beacon-2.6.17/warp_beacon.egg-info}/PKG-INFO +1 -1
  7. warp_beacon-2.6.15/warp_beacon/__version__.py +0 -2
  8. {warp_beacon-2.6.15 → warp_beacon-2.6.17}/LICENSE +0 -0
  9. {warp_beacon-2.6.15 → warp_beacon-2.6.17}/MANIFEST.in +0 -0
  10. {warp_beacon-2.6.15 → warp_beacon-2.6.17}/README.md +0 -0
  11. {warp_beacon-2.6.15 → warp_beacon-2.6.17}/assets/placeholder.gif +0 -0
  12. {warp_beacon-2.6.15 → warp_beacon-2.6.17}/etc/.gitignore +0 -0
  13. {warp_beacon-2.6.15 → warp_beacon-2.6.17}/etc/accounts.json +0 -0
  14. {warp_beacon-2.6.15 → warp_beacon-2.6.17}/etc/proxies.json +0 -0
  15. {warp_beacon-2.6.15 → warp_beacon-2.6.17}/etc/warp_beacon.conf +0 -0
  16. {warp_beacon-2.6.15 → warp_beacon-2.6.17}/etc/warp_beacon.service +0 -0
  17. {warp_beacon-2.6.15 → warp_beacon-2.6.17}/pyproject.toml +0 -0
  18. {warp_beacon-2.6.15 → warp_beacon-2.6.17}/setup.cfg +0 -0
  19. {warp_beacon-2.6.15 → warp_beacon-2.6.17}/setup.py +0 -0
  20. {warp_beacon-2.6.15 → warp_beacon-2.6.17}/warp_beacon/__init__.py +0 -0
  21. {warp_beacon-2.6.15 → warp_beacon-2.6.17}/warp_beacon/compress/__init__.py +0 -0
  22. {warp_beacon-2.6.15 → warp_beacon-2.6.17}/warp_beacon/compress/video.py +0 -0
  23. {warp_beacon-2.6.15 → warp_beacon-2.6.17}/warp_beacon/jobs/__init__.py +0 -0
  24. {warp_beacon-2.6.15 → warp_beacon-2.6.17}/warp_beacon/jobs/abstract.py +0 -0
  25. {warp_beacon-2.6.15 → warp_beacon-2.6.17}/warp_beacon/jobs/download_job.py +0 -0
  26. {warp_beacon-2.6.15 → warp_beacon-2.6.17}/warp_beacon/jobs/types.py +0 -0
  27. {warp_beacon-2.6.15 → warp_beacon-2.6.17}/warp_beacon/jobs/upload_job.py +0 -0
  28. {warp_beacon-2.6.15 → warp_beacon-2.6.17}/warp_beacon/mediainfo/__init__.py +0 -0
  29. {warp_beacon-2.6.15 → warp_beacon-2.6.17}/warp_beacon/mediainfo/abstract.py +0 -0
  30. {warp_beacon-2.6.15 → warp_beacon-2.6.17}/warp_beacon/mediainfo/audio.py +0 -0
  31. {warp_beacon-2.6.15 → warp_beacon-2.6.17}/warp_beacon/mediainfo/silencer.py +0 -0
  32. {warp_beacon-2.6.15 → warp_beacon-2.6.17}/warp_beacon/mediainfo/video.py +0 -0
  33. {warp_beacon-2.6.15 → warp_beacon-2.6.17}/warp_beacon/scheduler/__init__.py +0 -0
  34. {warp_beacon-2.6.15 → warp_beacon-2.6.17}/warp_beacon/scheduler/instagram_human.py +0 -0
  35. {warp_beacon-2.6.15 → warp_beacon-2.6.17}/warp_beacon/scheduler/scheduler.py +0 -0
  36. {warp_beacon-2.6.15 → warp_beacon-2.6.17}/warp_beacon/scraper/abstract.py +0 -0
  37. {warp_beacon-2.6.15 → warp_beacon-2.6.17}/warp_beacon/scraper/exceptions.py +0 -0
  38. {warp_beacon-2.6.15 → warp_beacon-2.6.17}/warp_beacon/scraper/instagram/__init__.py +0 -0
  39. {warp_beacon-2.6.15 → warp_beacon-2.6.17}/warp_beacon/scraper/instagram/captcha.py +0 -0
  40. {warp_beacon-2.6.15 → warp_beacon-2.6.17}/warp_beacon/scraper/instagram/instagram.py +0 -0
  41. {warp_beacon-2.6.15 → warp_beacon-2.6.17}/warp_beacon/scraper/link_resolver.py +0 -0
  42. {warp_beacon-2.6.15 → warp_beacon-2.6.17}/warp_beacon/scraper/youtube/__init__.py +0 -0
  43. {warp_beacon-2.6.15 → warp_beacon-2.6.17}/warp_beacon/scraper/youtube/abstract.py +0 -0
  44. {warp_beacon-2.6.15 → warp_beacon-2.6.17}/warp_beacon/scraper/youtube/music.py +0 -0
  45. {warp_beacon-2.6.15 → warp_beacon-2.6.17}/warp_beacon/scraper/youtube/shorts.py +0 -0
  46. {warp_beacon-2.6.15 → warp_beacon-2.6.17}/warp_beacon/scraper/youtube/youtube.py +0 -0
  47. {warp_beacon-2.6.15 → warp_beacon-2.6.17}/warp_beacon/storage/__init__.py +0 -0
  48. {warp_beacon-2.6.15 → warp_beacon-2.6.17}/warp_beacon/storage/mongo.py +0 -0
  49. {warp_beacon-2.6.15 → warp_beacon-2.6.17}/warp_beacon/telegram/__init__.py +0 -0
  50. {warp_beacon-2.6.15 → warp_beacon-2.6.17}/warp_beacon/telegram/bot.py +0 -0
  51. {warp_beacon-2.6.15 → warp_beacon-2.6.17}/warp_beacon/telegram/caption_shortener.py +0 -0
  52. {warp_beacon-2.6.15 → warp_beacon-2.6.17}/warp_beacon/telegram/handlers.py +0 -0
  53. {warp_beacon-2.6.15 → warp_beacon-2.6.17}/warp_beacon/telegram/placeholder_message.py +0 -0
  54. {warp_beacon-2.6.15 → warp_beacon-2.6.17}/warp_beacon/telegram/utils.py +0 -0
  55. {warp_beacon-2.6.15 → warp_beacon-2.6.17}/warp_beacon/uploader/__init__.py +0 -0
  56. {warp_beacon-2.6.15 → warp_beacon-2.6.17}/warp_beacon/warp_beacon.py +0 -0
  57. {warp_beacon-2.6.15 → warp_beacon-2.6.17}/warp_beacon/yt_auth.py +0 -0
  58. {warp_beacon-2.6.15 → warp_beacon-2.6.17}/warp_beacon.egg-info/SOURCES.txt +0 -0
  59. {warp_beacon-2.6.15 → warp_beacon-2.6.17}/warp_beacon.egg-info/dependency_links.txt +0 -0
  60. {warp_beacon-2.6.15 → warp_beacon-2.6.17}/warp_beacon.egg-info/entry_points.txt +0 -0
  61. {warp_beacon-2.6.15 → warp_beacon-2.6.17}/warp_beacon.egg-info/requires.txt +0 -0
  62. {warp_beacon-2.6.15 → warp_beacon-2.6.17}/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.15
3
+ Version: 2.6.17
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.17"
2
+
@@ -100,11 +100,11 @@ class AsyncDownloader(object):
100
100
  while self.allow_loop.value == 1:
101
101
  try:
102
102
  job: DownloadJob = None
103
+ actor = None
103
104
  try:
104
105
  job = self.job_queue.get()
105
106
  if job is self.__JOE_BIDEN_WAKEUP:
106
107
  break
107
- actor = None
108
108
  try:
109
109
  items = []
110
110
  if job.job_origin is Origin.UNKNOWN:
@@ -249,23 +249,6 @@ class AsyncDownloader(object):
249
249
  f"Task <code>{job.job_id}</code> failed. URL: '{job.url}'. Reason: '<b>YotubeAgeRestrictedError</b>'."
250
250
  )
251
251
  break
252
- except AllAccountsFailed as e:
253
- logging.error("All accounts failed!")
254
- logging.exception(e)
255
- self.send_message_to_admin(
256
- f"Task <code>{job.job_id}</code> failed. URL: '{job.url}'. Reason: '<b>AllAccountsFailed</b>'."
257
- )
258
- if job.job_origin == Origin.INSTAGRAM:
259
- logging.info("Handling captcha postpone")
260
- self.uploader.queue_task(job.to_upload_job(
261
- job_warning=True,
262
- job_warning_msg="Bot is experiencing issues, video delivery may be delayed.")
263
- )
264
- #self.try_next_account(selector, job, report_error="captcha")
265
- #e.job.job_postponed_until = time.time() + 300
266
- #self.job_queue.put(e.job)
267
- fail_handler.store_failed_job(job)
268
- break
269
252
  except (UnknownError, Exception) as e:
270
253
  logging.warning("UnknownError occurred!")
271
254
  logging.exception(e)
@@ -381,6 +364,22 @@ class AsyncDownloader(object):
381
364
  else:
382
365
  logging.info("Job already in work in parallel worker. Redirecting job to upload worker.")
383
366
  self.uploader.queue_task(job.to_upload_job())
367
+
368
+ except AllAccountsFailed as e:
369
+ self.send_message_to_admin(
370
+ f"Task <code>{job.job_id}</code> failed. URL: '{job.url}'. Reason: '<b>AllAccountsFailed</b>'."
371
+ )
372
+ if job.job_origin == Origin.INSTAGRAM:
373
+ logging.info("Handling captcha postpone")
374
+ self.uploader.queue_task(job.to_upload_job(
375
+ job_warning=True,
376
+ job_warning_msg="The bot is currently experiencing technical issues. Message delivery may be delayed.")
377
+ )
378
+ #self.try_next_account(selector, job, report_error="captcha")
379
+ #e.job.job_postponed_until = time.time() + 300
380
+ #self.job_queue.put(e.job)
381
+ fail_handler.store_failed_job(job)
382
+ self.notify_task_failed(job)
384
383
  except Exception as e:
385
384
  logging.error("Error inside download worker!")
386
385
  logging.exception(e)
@@ -398,6 +397,7 @@ class AsyncDownloader(object):
398
397
 
399
398
  def stop_all(self) -> None:
400
399
  self.allow_loop.value = 0
400
+ self.acc_selector.save_ig_request_count()
401
401
  for proc in self.workers:
402
402
  if proc.is_alive():
403
403
  logging.info("stopping process #%d", proc.pid)
@@ -40,9 +40,33 @@ class AccountSelector(object):
40
40
  if proxy_file_path:
41
41
  with open(proxy_file_path, 'r', encoding="utf-8") as f:
42
42
  self.proxies = json.loads(f.read())
43
+
44
+ self.load_ig_request_count()
43
45
  else:
44
46
  raise ValueError("Accounts file not found")
45
47
 
48
+ def save_ig_request_count(self) -> None:
49
+ try:
50
+ state = {"ig_count": self.ig_request_count.value}
51
+ with open(f"{self.session_dir}/ig_request_counter.json", "w+", encoding="utf-8") as f:
52
+ f.write(json.dumps(state))
53
+ except Exception as e:
54
+ logging.error("Failed to save accounts states!")
55
+ logging.exception(e)
56
+
57
+ def load_ig_request_count(self) -> None:
58
+ try:
59
+ state = {}
60
+ filepath = f"{self.session_dir}/ig_request_counter.json"
61
+ if os.path.exists(filepath):
62
+ with open(f"{self.session_dir}/ig_request_counter.json", "r", encoding="utf-8") as f:
63
+ state = json.loads(f.read())
64
+ if state:
65
+ self.ig_request_count.value = int(state.get("ig_count", 0))
66
+ except Exception as e:
67
+ logging.error("Failed to save accounts states!")
68
+ logging.exception(e)
69
+
46
70
  def get_current_proxy(self) -> Optional[dict]:
47
71
  return self.current_proxy
48
72
 
@@ -1,12 +1,10 @@
1
- import os
2
-
3
1
  import pickle
4
2
 
3
+ import logging
4
+
5
5
  from warp_beacon.storage.mongo import DBClient
6
6
  from warp_beacon.jobs.download_job import DownloadJob
7
7
 
8
- import logging
9
-
10
8
  class FailHandler(object):
11
9
  client = None
12
10
  db = None
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: warp_beacon
3
- Version: 2.6.15
3
+ Version: 2.6.17
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.15"
2
-
File without changes
File without changes
File without changes
File without changes
File without changes