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.
- {warp_beacon-2.6.23/warp_beacon.egg-info → warp_beacon-2.6.25}/PKG-INFO +1 -1
- warp_beacon-2.6.25/warp_beacon/__version__.py +2 -0
- {warp_beacon-2.6.23 → warp_beacon-2.6.25}/warp_beacon/scraper/__init__.py +6 -2
- {warp_beacon-2.6.23 → warp_beacon-2.6.25}/warp_beacon/scraper/abstract.py +0 -2
- {warp_beacon-2.6.23 → warp_beacon-2.6.25}/warp_beacon/scraper/account_selector.py +6 -2
- {warp_beacon-2.6.23 → warp_beacon-2.6.25/warp_beacon.egg-info}/PKG-INFO +1 -1
- warp_beacon-2.6.23/warp_beacon/__version__.py +0 -2
- {warp_beacon-2.6.23 → warp_beacon-2.6.25}/LICENSE +0 -0
- {warp_beacon-2.6.23 → warp_beacon-2.6.25}/MANIFEST.in +0 -0
- {warp_beacon-2.6.23 → warp_beacon-2.6.25}/README.md +0 -0
- {warp_beacon-2.6.23 → warp_beacon-2.6.25}/assets/placeholder.gif +0 -0
- {warp_beacon-2.6.23 → warp_beacon-2.6.25}/etc/.gitignore +0 -0
- {warp_beacon-2.6.23 → warp_beacon-2.6.25}/etc/accounts.json +0 -0
- {warp_beacon-2.6.23 → warp_beacon-2.6.25}/etc/proxies.json +0 -0
- {warp_beacon-2.6.23 → warp_beacon-2.6.25}/etc/warp_beacon.conf +0 -0
- {warp_beacon-2.6.23 → warp_beacon-2.6.25}/etc/warp_beacon.service +0 -0
- {warp_beacon-2.6.23 → warp_beacon-2.6.25}/pyproject.toml +0 -0
- {warp_beacon-2.6.23 → warp_beacon-2.6.25}/setup.cfg +0 -0
- {warp_beacon-2.6.23 → warp_beacon-2.6.25}/setup.py +0 -0
- {warp_beacon-2.6.23 → warp_beacon-2.6.25}/warp_beacon/__init__.py +0 -0
- {warp_beacon-2.6.23 → warp_beacon-2.6.25}/warp_beacon/compress/__init__.py +0 -0
- {warp_beacon-2.6.23 → warp_beacon-2.6.25}/warp_beacon/compress/video.py +0 -0
- {warp_beacon-2.6.23 → warp_beacon-2.6.25}/warp_beacon/jobs/__init__.py +0 -0
- {warp_beacon-2.6.23 → warp_beacon-2.6.25}/warp_beacon/jobs/abstract.py +0 -0
- {warp_beacon-2.6.23 → warp_beacon-2.6.25}/warp_beacon/jobs/download_job.py +0 -0
- {warp_beacon-2.6.23 → warp_beacon-2.6.25}/warp_beacon/jobs/types.py +0 -0
- {warp_beacon-2.6.23 → warp_beacon-2.6.25}/warp_beacon/jobs/upload_job.py +0 -0
- {warp_beacon-2.6.23 → warp_beacon-2.6.25}/warp_beacon/mediainfo/__init__.py +0 -0
- {warp_beacon-2.6.23 → warp_beacon-2.6.25}/warp_beacon/mediainfo/abstract.py +0 -0
- {warp_beacon-2.6.23 → warp_beacon-2.6.25}/warp_beacon/mediainfo/audio.py +0 -0
- {warp_beacon-2.6.23 → warp_beacon-2.6.25}/warp_beacon/mediainfo/silencer.py +0 -0
- {warp_beacon-2.6.23 → warp_beacon-2.6.25}/warp_beacon/mediainfo/video.py +0 -0
- {warp_beacon-2.6.23 → warp_beacon-2.6.25}/warp_beacon/scheduler/__init__.py +0 -0
- {warp_beacon-2.6.23 → warp_beacon-2.6.25}/warp_beacon/scheduler/instagram_human.py +0 -0
- {warp_beacon-2.6.23 → warp_beacon-2.6.25}/warp_beacon/scheduler/scheduler.py +0 -0
- {warp_beacon-2.6.23 → warp_beacon-2.6.25}/warp_beacon/scraper/exceptions.py +0 -0
- {warp_beacon-2.6.23 → warp_beacon-2.6.25}/warp_beacon/scraper/fail_handler.py +0 -0
- {warp_beacon-2.6.23 → warp_beacon-2.6.25}/warp_beacon/scraper/instagram/__init__.py +0 -0
- {warp_beacon-2.6.23 → warp_beacon-2.6.25}/warp_beacon/scraper/instagram/captcha.py +0 -0
- {warp_beacon-2.6.23 → warp_beacon-2.6.25}/warp_beacon/scraper/instagram/instagram.py +0 -0
- {warp_beacon-2.6.23 → warp_beacon-2.6.25}/warp_beacon/scraper/link_resolver.py +0 -0
- {warp_beacon-2.6.23 → warp_beacon-2.6.25}/warp_beacon/scraper/youtube/__init__.py +0 -0
- {warp_beacon-2.6.23 → warp_beacon-2.6.25}/warp_beacon/scraper/youtube/abstract.py +0 -0
- {warp_beacon-2.6.23 → warp_beacon-2.6.25}/warp_beacon/scraper/youtube/music.py +0 -0
- {warp_beacon-2.6.23 → warp_beacon-2.6.25}/warp_beacon/scraper/youtube/shorts.py +0 -0
- {warp_beacon-2.6.23 → warp_beacon-2.6.25}/warp_beacon/scraper/youtube/youtube.py +0 -0
- {warp_beacon-2.6.23 → warp_beacon-2.6.25}/warp_beacon/storage/__init__.py +0 -0
- {warp_beacon-2.6.23 → warp_beacon-2.6.25}/warp_beacon/storage/mongo.py +0 -0
- {warp_beacon-2.6.23 → warp_beacon-2.6.25}/warp_beacon/telegram/__init__.py +0 -0
- {warp_beacon-2.6.23 → warp_beacon-2.6.25}/warp_beacon/telegram/bot.py +0 -0
- {warp_beacon-2.6.23 → warp_beacon-2.6.25}/warp_beacon/telegram/caption_shortener.py +0 -0
- {warp_beacon-2.6.23 → warp_beacon-2.6.25}/warp_beacon/telegram/handlers.py +0 -0
- {warp_beacon-2.6.23 → warp_beacon-2.6.25}/warp_beacon/telegram/placeholder_message.py +0 -0
- {warp_beacon-2.6.23 → warp_beacon-2.6.25}/warp_beacon/telegram/utils.py +0 -0
- {warp_beacon-2.6.23 → warp_beacon-2.6.25}/warp_beacon/uploader/__init__.py +0 -0
- {warp_beacon-2.6.23 → warp_beacon-2.6.25}/warp_beacon/warp_beacon.py +0 -0
- {warp_beacon-2.6.23 → warp_beacon-2.6.25}/warp_beacon/yt_auth.py +0 -0
- {warp_beacon-2.6.23 → warp_beacon-2.6.25}/warp_beacon.egg-info/SOURCES.txt +0 -0
- {warp_beacon-2.6.23 → warp_beacon-2.6.25}/warp_beacon.egg-info/dependency_links.txt +0 -0
- {warp_beacon-2.6.23 → warp_beacon-2.6.25}/warp_beacon.egg-info/entry_points.txt +0 -0
- {warp_beacon-2.6.23 → warp_beacon-2.6.25}/warp_beacon.egg-info/requires.txt +0 -0
- {warp_beacon-2.6.23 → warp_beacon-2.6.25}/warp_beacon.egg-info/top_level.txt +0 -0
@@ -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:
|
@@ -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.
|
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
|
-
|
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
|
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
|