warp-beacon 2.6.26__tar.gz → 2.6.28__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.26/warp_beacon.egg-info → warp_beacon-2.6.28}/PKG-INFO +1 -1
- warp_beacon-2.6.28/warp_beacon/__version__.py +2 -0
- {warp_beacon-2.6.26 → warp_beacon-2.6.28}/warp_beacon/scraper/__init__.py +13 -6
- {warp_beacon-2.6.26 → warp_beacon-2.6.28}/warp_beacon/scraper/abstract.py +3 -2
- {warp_beacon-2.6.26 → warp_beacon-2.6.28/warp_beacon.egg-info}/PKG-INFO +1 -1
- warp_beacon-2.6.26/warp_beacon/__version__.py +0 -2
- {warp_beacon-2.6.26 → warp_beacon-2.6.28}/LICENSE +0 -0
- {warp_beacon-2.6.26 → warp_beacon-2.6.28}/MANIFEST.in +0 -0
- {warp_beacon-2.6.26 → warp_beacon-2.6.28}/README.md +0 -0
- {warp_beacon-2.6.26 → warp_beacon-2.6.28}/assets/placeholder.gif +0 -0
- {warp_beacon-2.6.26 → warp_beacon-2.6.28}/etc/.gitignore +0 -0
- {warp_beacon-2.6.26 → warp_beacon-2.6.28}/etc/accounts.json +0 -0
- {warp_beacon-2.6.26 → warp_beacon-2.6.28}/etc/proxies.json +0 -0
- {warp_beacon-2.6.26 → warp_beacon-2.6.28}/etc/warp_beacon.conf +0 -0
- {warp_beacon-2.6.26 → warp_beacon-2.6.28}/etc/warp_beacon.service +0 -0
- {warp_beacon-2.6.26 → warp_beacon-2.6.28}/pyproject.toml +0 -0
- {warp_beacon-2.6.26 → warp_beacon-2.6.28}/setup.cfg +0 -0
- {warp_beacon-2.6.26 → warp_beacon-2.6.28}/setup.py +0 -0
- {warp_beacon-2.6.26 → warp_beacon-2.6.28}/warp_beacon/__init__.py +0 -0
- {warp_beacon-2.6.26 → warp_beacon-2.6.28}/warp_beacon/compress/__init__.py +0 -0
- {warp_beacon-2.6.26 → warp_beacon-2.6.28}/warp_beacon/compress/video.py +0 -0
- {warp_beacon-2.6.26 → warp_beacon-2.6.28}/warp_beacon/jobs/__init__.py +0 -0
- {warp_beacon-2.6.26 → warp_beacon-2.6.28}/warp_beacon/jobs/abstract.py +0 -0
- {warp_beacon-2.6.26 → warp_beacon-2.6.28}/warp_beacon/jobs/download_job.py +0 -0
- {warp_beacon-2.6.26 → warp_beacon-2.6.28}/warp_beacon/jobs/types.py +0 -0
- {warp_beacon-2.6.26 → warp_beacon-2.6.28}/warp_beacon/jobs/upload_job.py +0 -0
- {warp_beacon-2.6.26 → warp_beacon-2.6.28}/warp_beacon/mediainfo/__init__.py +0 -0
- {warp_beacon-2.6.26 → warp_beacon-2.6.28}/warp_beacon/mediainfo/abstract.py +0 -0
- {warp_beacon-2.6.26 → warp_beacon-2.6.28}/warp_beacon/mediainfo/audio.py +0 -0
- {warp_beacon-2.6.26 → warp_beacon-2.6.28}/warp_beacon/mediainfo/silencer.py +0 -0
- {warp_beacon-2.6.26 → warp_beacon-2.6.28}/warp_beacon/mediainfo/video.py +0 -0
- {warp_beacon-2.6.26 → warp_beacon-2.6.28}/warp_beacon/scheduler/__init__.py +0 -0
- {warp_beacon-2.6.26 → warp_beacon-2.6.28}/warp_beacon/scheduler/instagram_human.py +0 -0
- {warp_beacon-2.6.26 → warp_beacon-2.6.28}/warp_beacon/scheduler/scheduler.py +0 -0
- {warp_beacon-2.6.26 → warp_beacon-2.6.28}/warp_beacon/scraper/account_selector.py +0 -0
- {warp_beacon-2.6.26 → warp_beacon-2.6.28}/warp_beacon/scraper/exceptions.py +0 -0
- {warp_beacon-2.6.26 → warp_beacon-2.6.28}/warp_beacon/scraper/fail_handler.py +0 -0
- {warp_beacon-2.6.26 → warp_beacon-2.6.28}/warp_beacon/scraper/instagram/__init__.py +0 -0
- {warp_beacon-2.6.26 → warp_beacon-2.6.28}/warp_beacon/scraper/instagram/captcha.py +0 -0
- {warp_beacon-2.6.26 → warp_beacon-2.6.28}/warp_beacon/scraper/instagram/instagram.py +0 -0
- {warp_beacon-2.6.26 → warp_beacon-2.6.28}/warp_beacon/scraper/link_resolver.py +0 -0
- {warp_beacon-2.6.26 → warp_beacon-2.6.28}/warp_beacon/scraper/youtube/__init__.py +0 -0
- {warp_beacon-2.6.26 → warp_beacon-2.6.28}/warp_beacon/scraper/youtube/abstract.py +0 -0
- {warp_beacon-2.6.26 → warp_beacon-2.6.28}/warp_beacon/scraper/youtube/music.py +0 -0
- {warp_beacon-2.6.26 → warp_beacon-2.6.28}/warp_beacon/scraper/youtube/shorts.py +0 -0
- {warp_beacon-2.6.26 → warp_beacon-2.6.28}/warp_beacon/scraper/youtube/youtube.py +0 -0
- {warp_beacon-2.6.26 → warp_beacon-2.6.28}/warp_beacon/storage/__init__.py +0 -0
- {warp_beacon-2.6.26 → warp_beacon-2.6.28}/warp_beacon/storage/mongo.py +0 -0
- {warp_beacon-2.6.26 → warp_beacon-2.6.28}/warp_beacon/telegram/__init__.py +0 -0
- {warp_beacon-2.6.26 → warp_beacon-2.6.28}/warp_beacon/telegram/bot.py +0 -0
- {warp_beacon-2.6.26 → warp_beacon-2.6.28}/warp_beacon/telegram/caption_shortener.py +0 -0
- {warp_beacon-2.6.26 → warp_beacon-2.6.28}/warp_beacon/telegram/handlers.py +0 -0
- {warp_beacon-2.6.26 → warp_beacon-2.6.28}/warp_beacon/telegram/placeholder_message.py +0 -0
- {warp_beacon-2.6.26 → warp_beacon-2.6.28}/warp_beacon/telegram/utils.py +0 -0
- {warp_beacon-2.6.26 → warp_beacon-2.6.28}/warp_beacon/uploader/__init__.py +0 -0
- {warp_beacon-2.6.26 → warp_beacon-2.6.28}/warp_beacon/warp_beacon.py +0 -0
- {warp_beacon-2.6.26 → warp_beacon-2.6.28}/warp_beacon/yt_auth.py +0 -0
- {warp_beacon-2.6.26 → warp_beacon-2.6.28}/warp_beacon.egg-info/SOURCES.txt +0 -0
- {warp_beacon-2.6.26 → warp_beacon-2.6.28}/warp_beacon.egg-info/dependency_links.txt +0 -0
- {warp_beacon-2.6.26 → warp_beacon-2.6.28}/warp_beacon.egg-info/entry_points.txt +0 -0
- {warp_beacon-2.6.26 → warp_beacon-2.6.28}/warp_beacon.egg-info/requires.txt +0 -0
- {warp_beacon-2.6.26 → warp_beacon-2.6.28}/warp_beacon.egg-info/top_level.txt +0 -0
@@ -38,6 +38,7 @@ class AsyncDownloader(object):
|
|
38
38
|
manager = None
|
39
39
|
acc_selector = None
|
40
40
|
scheduler = None
|
41
|
+
scrolling_now = None
|
41
42
|
|
42
43
|
def __init__(self, uploader: AsyncUploader, workers_count: int) -> None:
|
43
44
|
self.workers = []
|
@@ -45,6 +46,7 @@ class AsyncDownloader(object):
|
|
45
46
|
self.auth_event = multiprocessing.Event()
|
46
47
|
self.manager = multiprocessing.Manager()
|
47
48
|
self.allow_loop = self.manager.Value('i', 1)
|
49
|
+
self.scrolling_now = self.manager.Value('i', 0)
|
48
50
|
self.acc_selector = AccountSelector(self.manager, ACC_FILE, PROXY_FILE)
|
49
51
|
self.uploader = uploader
|
50
52
|
self.workers_count = workers_count
|
@@ -156,10 +158,12 @@ class AsyncDownloader(object):
|
|
156
158
|
while self.allow_loop.value == 1:
|
157
159
|
try:
|
158
160
|
if job.scroll_content and job.last_pk and job.job_origin is Origin.INSTAGRAM:
|
161
|
+
self.scrolling_now.value = 1
|
159
162
|
logging.info("Scrolling relative content with pk '%s'", job.last_pk)
|
160
163
|
operations = actor.scroll_content(last_pk=job.last_pk)
|
161
164
|
if operations:
|
162
165
|
selector.inc_ig_request_count(amount=operations)
|
166
|
+
self.scrolling_now.value = 0
|
163
167
|
logging.info("Scrolling done")
|
164
168
|
break
|
165
169
|
if job.session_validation and job.job_origin in (Origin.INSTAGRAM, Origin.YOUTUBE):
|
@@ -382,12 +386,15 @@ class AsyncDownloader(object):
|
|
382
386
|
else:
|
383
387
|
self.uploader.queue_task(upload_job)
|
384
388
|
# watch related reels to simulate human
|
385
|
-
if
|
386
|
-
|
387
|
-
|
388
|
-
|
389
|
-
|
390
|
-
|
389
|
+
if self.scrolling_now.value == 0:
|
390
|
+
if item.get("last_pk", 0) and "reel/" in job.url:
|
391
|
+
self.queue_task(DownloadJob.build(
|
392
|
+
scroll_content=True,
|
393
|
+
last_pk=int(item.get("last_pk", 0)),
|
394
|
+
job_origin=Origin.INSTAGRAM
|
395
|
+
))
|
396
|
+
else:
|
397
|
+
logging.info("Scrolling in progress, ignoring request")
|
391
398
|
else:
|
392
399
|
logging.info("Job already in work in parallel worker. Redirecting job to upload worker.")
|
393
400
|
self.uploader.queue_task(job.to_upload_job())
|
@@ -27,8 +27,8 @@ class ScraperAbstract(ABC):
|
|
27
27
|
self.account_index = account[0]
|
28
28
|
self.account = account[1]
|
29
29
|
self.proxy = proxy
|
30
|
-
if self.account.get("force_ipv6", False):
|
31
|
-
|
30
|
+
#if self.account.get("force_ipv6", False):
|
31
|
+
# self.force_ipv6()
|
32
32
|
|
33
33
|
#def __del__(self) -> None:
|
34
34
|
# if self.account.get("force_ipv6", False):
|
@@ -95,6 +95,7 @@ class ScraperAbstract(ABC):
|
|
95
95
|
urllib3_cn.allowed_gai_family = allowed_gai_family
|
96
96
|
|
97
97
|
def restore_gai(self) -> None:
|
98
|
+
return
|
98
99
|
with self._gai_lock:
|
99
100
|
if self.original_gai_family:
|
100
101
|
logging.info("Restoring normal IP stack ...")
|
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
|