warp-beacon 2.6.23__tar.gz → 2.6.25__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.23/warp_beacon.egg-info → warp_beacon-2.6.25}/PKG-INFO +1 -1
  2. warp_beacon-2.6.25/warp_beacon/__version__.py +2 -0
  3. {warp_beacon-2.6.23 → warp_beacon-2.6.25}/warp_beacon/scraper/__init__.py +6 -2
  4. {warp_beacon-2.6.23 → warp_beacon-2.6.25}/warp_beacon/scraper/abstract.py +0 -2
  5. {warp_beacon-2.6.23 → warp_beacon-2.6.25}/warp_beacon/scraper/account_selector.py +6 -2
  6. {warp_beacon-2.6.23 → warp_beacon-2.6.25/warp_beacon.egg-info}/PKG-INFO +1 -1
  7. warp_beacon-2.6.23/warp_beacon/__version__.py +0 -2
  8. {warp_beacon-2.6.23 → warp_beacon-2.6.25}/LICENSE +0 -0
  9. {warp_beacon-2.6.23 → warp_beacon-2.6.25}/MANIFEST.in +0 -0
  10. {warp_beacon-2.6.23 → warp_beacon-2.6.25}/README.md +0 -0
  11. {warp_beacon-2.6.23 → warp_beacon-2.6.25}/assets/placeholder.gif +0 -0
  12. {warp_beacon-2.6.23 → warp_beacon-2.6.25}/etc/.gitignore +0 -0
  13. {warp_beacon-2.6.23 → warp_beacon-2.6.25}/etc/accounts.json +0 -0
  14. {warp_beacon-2.6.23 → warp_beacon-2.6.25}/etc/proxies.json +0 -0
  15. {warp_beacon-2.6.23 → warp_beacon-2.6.25}/etc/warp_beacon.conf +0 -0
  16. {warp_beacon-2.6.23 → warp_beacon-2.6.25}/etc/warp_beacon.service +0 -0
  17. {warp_beacon-2.6.23 → warp_beacon-2.6.25}/pyproject.toml +0 -0
  18. {warp_beacon-2.6.23 → warp_beacon-2.6.25}/setup.cfg +0 -0
  19. {warp_beacon-2.6.23 → warp_beacon-2.6.25}/setup.py +0 -0
  20. {warp_beacon-2.6.23 → warp_beacon-2.6.25}/warp_beacon/__init__.py +0 -0
  21. {warp_beacon-2.6.23 → warp_beacon-2.6.25}/warp_beacon/compress/__init__.py +0 -0
  22. {warp_beacon-2.6.23 → warp_beacon-2.6.25}/warp_beacon/compress/video.py +0 -0
  23. {warp_beacon-2.6.23 → warp_beacon-2.6.25}/warp_beacon/jobs/__init__.py +0 -0
  24. {warp_beacon-2.6.23 → warp_beacon-2.6.25}/warp_beacon/jobs/abstract.py +0 -0
  25. {warp_beacon-2.6.23 → warp_beacon-2.6.25}/warp_beacon/jobs/download_job.py +0 -0
  26. {warp_beacon-2.6.23 → warp_beacon-2.6.25}/warp_beacon/jobs/types.py +0 -0
  27. {warp_beacon-2.6.23 → warp_beacon-2.6.25}/warp_beacon/jobs/upload_job.py +0 -0
  28. {warp_beacon-2.6.23 → warp_beacon-2.6.25}/warp_beacon/mediainfo/__init__.py +0 -0
  29. {warp_beacon-2.6.23 → warp_beacon-2.6.25}/warp_beacon/mediainfo/abstract.py +0 -0
  30. {warp_beacon-2.6.23 → warp_beacon-2.6.25}/warp_beacon/mediainfo/audio.py +0 -0
  31. {warp_beacon-2.6.23 → warp_beacon-2.6.25}/warp_beacon/mediainfo/silencer.py +0 -0
  32. {warp_beacon-2.6.23 → warp_beacon-2.6.25}/warp_beacon/mediainfo/video.py +0 -0
  33. {warp_beacon-2.6.23 → warp_beacon-2.6.25}/warp_beacon/scheduler/__init__.py +0 -0
  34. {warp_beacon-2.6.23 → warp_beacon-2.6.25}/warp_beacon/scheduler/instagram_human.py +0 -0
  35. {warp_beacon-2.6.23 → warp_beacon-2.6.25}/warp_beacon/scheduler/scheduler.py +0 -0
  36. {warp_beacon-2.6.23 → warp_beacon-2.6.25}/warp_beacon/scraper/exceptions.py +0 -0
  37. {warp_beacon-2.6.23 → warp_beacon-2.6.25}/warp_beacon/scraper/fail_handler.py +0 -0
  38. {warp_beacon-2.6.23 → warp_beacon-2.6.25}/warp_beacon/scraper/instagram/__init__.py +0 -0
  39. {warp_beacon-2.6.23 → warp_beacon-2.6.25}/warp_beacon/scraper/instagram/captcha.py +0 -0
  40. {warp_beacon-2.6.23 → warp_beacon-2.6.25}/warp_beacon/scraper/instagram/instagram.py +0 -0
  41. {warp_beacon-2.6.23 → warp_beacon-2.6.25}/warp_beacon/scraper/link_resolver.py +0 -0
  42. {warp_beacon-2.6.23 → warp_beacon-2.6.25}/warp_beacon/scraper/youtube/__init__.py +0 -0
  43. {warp_beacon-2.6.23 → warp_beacon-2.6.25}/warp_beacon/scraper/youtube/abstract.py +0 -0
  44. {warp_beacon-2.6.23 → warp_beacon-2.6.25}/warp_beacon/scraper/youtube/music.py +0 -0
  45. {warp_beacon-2.6.23 → warp_beacon-2.6.25}/warp_beacon/scraper/youtube/shorts.py +0 -0
  46. {warp_beacon-2.6.23 → warp_beacon-2.6.25}/warp_beacon/scraper/youtube/youtube.py +0 -0
  47. {warp_beacon-2.6.23 → warp_beacon-2.6.25}/warp_beacon/storage/__init__.py +0 -0
  48. {warp_beacon-2.6.23 → warp_beacon-2.6.25}/warp_beacon/storage/mongo.py +0 -0
  49. {warp_beacon-2.6.23 → warp_beacon-2.6.25}/warp_beacon/telegram/__init__.py +0 -0
  50. {warp_beacon-2.6.23 → warp_beacon-2.6.25}/warp_beacon/telegram/bot.py +0 -0
  51. {warp_beacon-2.6.23 → warp_beacon-2.6.25}/warp_beacon/telegram/caption_shortener.py +0 -0
  52. {warp_beacon-2.6.23 → warp_beacon-2.6.25}/warp_beacon/telegram/handlers.py +0 -0
  53. {warp_beacon-2.6.23 → warp_beacon-2.6.25}/warp_beacon/telegram/placeholder_message.py +0 -0
  54. {warp_beacon-2.6.23 → warp_beacon-2.6.25}/warp_beacon/telegram/utils.py +0 -0
  55. {warp_beacon-2.6.23 → warp_beacon-2.6.25}/warp_beacon/uploader/__init__.py +0 -0
  56. {warp_beacon-2.6.23 → warp_beacon-2.6.25}/warp_beacon/warp_beacon.py +0 -0
  57. {warp_beacon-2.6.23 → warp_beacon-2.6.25}/warp_beacon/yt_auth.py +0 -0
  58. {warp_beacon-2.6.23 → warp_beacon-2.6.25}/warp_beacon.egg-info/SOURCES.txt +0 -0
  59. {warp_beacon-2.6.23 → warp_beacon-2.6.25}/warp_beacon.egg-info/dependency_links.txt +0 -0
  60. {warp_beacon-2.6.23 → warp_beacon-2.6.25}/warp_beacon.egg-info/entry_points.txt +0 -0
  61. {warp_beacon-2.6.23 → warp_beacon-2.6.25}/warp_beacon.egg-info/requires.txt +0 -0
  62. {warp_beacon-2.6.23 → warp_beacon-2.6.25}/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.23
3
+ Version: 2.6.25
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.25"
2
+
@@ -102,7 +102,6 @@ class AsyncDownloader(object):
102
102
  try:
103
103
  job: DownloadJob = None
104
104
  actor = None
105
- proxy = None
106
105
  try:
107
106
  job = self.job_queue.get()
108
107
  if job is self.__JOE_BIDEN_WAKEUP:
@@ -124,10 +123,13 @@ class AsyncDownloader(object):
124
123
  time.sleep(2)
125
124
  self.job_queue.put(job)
126
125
  continue
126
+ last_proxy = selector.get_last_proxy()
127
127
  selector.set_module(job.job_origin)
128
128
  # use same proxy as in content request before
129
+ proxy = None
129
130
  if job.scroll_content:
130
131
  proxy = last_proxy
132
+ logging.info("Chosen last proxy '%s'", proxy)
131
133
  else:
132
134
  proxy = selector.get_current_proxy()
133
135
  if job.job_origin is Origin.INSTAGRAM:
@@ -297,8 +299,10 @@ class AsyncDownloader(object):
297
299
  f"Exception:<br><pre code=\"python\">{exception_msg}</pre>"
298
300
  ))
299
301
  break
302
+ finally:
303
+ if actor:
304
+ actor.restore_gai()
300
305
 
301
- actor.restore_gai()
302
306
  last_proxy = proxy
303
307
 
304
308
  if items:
@@ -29,8 +29,6 @@ class ScraperAbstract(ABC):
29
29
  self.proxy = proxy
30
30
  if self.account.get("force_ipv6", False):
31
31
  self.force_ipv6()
32
- else:
33
- self.restore_gai()
34
32
 
35
33
  #def __del__(self) -> None:
36
34
  # if self.account.get("force_ipv6", False):
@@ -69,6 +69,9 @@ class AccountSelector(object):
69
69
 
70
70
  def get_current_proxy(self) -> Optional[dict]:
71
71
  return self.current_proxy
72
+
73
+ def get_last_proxy(self) -> Optional[dict]:
74
+ return self.accounts_meta_data.get("last_proxy", None)
72
75
 
73
76
  def get_proxy_list(self) -> List[dict]:
74
77
  matched_proxy = []
@@ -96,7 +99,7 @@ class AccountSelector(object):
96
99
  if len(matched_proxy) > 1:
97
100
  random.seed(random.seed(time.time_ns() ^ int.from_bytes(os.urandom(len(matched_proxy)), "big")))
98
101
  # ensure new proxy in case if previous account required captcha
99
- last_proxy = self.accounts_meta_data.get("last_proxy", None)
102
+ last_proxy = self.get_last_proxy()
100
103
  if last_proxy and last_proxy in matched_proxy:
101
104
  matched_proxy.remove(last_proxy)
102
105
  prox_choice = random.choice(matched_proxy)
@@ -119,7 +122,8 @@ class AccountSelector(object):
119
122
  if matched_proxies:
120
123
  lit = cycle(matched_proxies)
121
124
  proxy = next(lit)
122
- if proxy.get("dsn", {}) == self.accounts_meta_data["last_proxy"].get("dsn", {}):
125
+ last_proxy = self.get_last_proxy()
126
+ if last_proxy and proxy.get("dsn", "") == last_proxy.get("dsn", ""):
123
127
  proxy = next(lit)
124
128
  self.current_proxy = proxy
125
129
  self.accounts_meta_data["last_proxy"] = proxy
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: warp_beacon
3
- Version: 2.6.23
3
+ Version: 2.6.25
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.23"
2
-
File without changes
File without changes
File without changes
File without changes
File without changes