warp-beacon 2.6.28__tar.gz → 2.6.30__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.28/warp_beacon.egg-info → warp_beacon-2.6.30}/PKG-INFO +1 -1
- warp_beacon-2.6.30/warp_beacon/__version__.py +2 -0
- {warp_beacon-2.6.28 → warp_beacon-2.6.30}/warp_beacon/scheduler/instagram_human.py +21 -3
- {warp_beacon-2.6.28 → warp_beacon-2.6.30}/warp_beacon/scraper/__init__.py +1 -1
- {warp_beacon-2.6.28 → warp_beacon-2.6.30/warp_beacon.egg-info}/PKG-INFO +1 -1
- warp_beacon-2.6.28/warp_beacon/__version__.py +0 -2
- {warp_beacon-2.6.28 → warp_beacon-2.6.30}/LICENSE +0 -0
- {warp_beacon-2.6.28 → warp_beacon-2.6.30}/MANIFEST.in +0 -0
- {warp_beacon-2.6.28 → warp_beacon-2.6.30}/README.md +0 -0
- {warp_beacon-2.6.28 → warp_beacon-2.6.30}/assets/placeholder.gif +0 -0
- {warp_beacon-2.6.28 → warp_beacon-2.6.30}/etc/.gitignore +0 -0
- {warp_beacon-2.6.28 → warp_beacon-2.6.30}/etc/accounts.json +0 -0
- {warp_beacon-2.6.28 → warp_beacon-2.6.30}/etc/proxies.json +0 -0
- {warp_beacon-2.6.28 → warp_beacon-2.6.30}/etc/warp_beacon.conf +0 -0
- {warp_beacon-2.6.28 → warp_beacon-2.6.30}/etc/warp_beacon.service +0 -0
- {warp_beacon-2.6.28 → warp_beacon-2.6.30}/pyproject.toml +0 -0
- {warp_beacon-2.6.28 → warp_beacon-2.6.30}/setup.cfg +0 -0
- {warp_beacon-2.6.28 → warp_beacon-2.6.30}/setup.py +0 -0
- {warp_beacon-2.6.28 → warp_beacon-2.6.30}/warp_beacon/__init__.py +0 -0
- {warp_beacon-2.6.28 → warp_beacon-2.6.30}/warp_beacon/compress/__init__.py +0 -0
- {warp_beacon-2.6.28 → warp_beacon-2.6.30}/warp_beacon/compress/video.py +0 -0
- {warp_beacon-2.6.28 → warp_beacon-2.6.30}/warp_beacon/jobs/__init__.py +0 -0
- {warp_beacon-2.6.28 → warp_beacon-2.6.30}/warp_beacon/jobs/abstract.py +0 -0
- {warp_beacon-2.6.28 → warp_beacon-2.6.30}/warp_beacon/jobs/download_job.py +0 -0
- {warp_beacon-2.6.28 → warp_beacon-2.6.30}/warp_beacon/jobs/types.py +0 -0
- {warp_beacon-2.6.28 → warp_beacon-2.6.30}/warp_beacon/jobs/upload_job.py +0 -0
- {warp_beacon-2.6.28 → warp_beacon-2.6.30}/warp_beacon/mediainfo/__init__.py +0 -0
- {warp_beacon-2.6.28 → warp_beacon-2.6.30}/warp_beacon/mediainfo/abstract.py +0 -0
- {warp_beacon-2.6.28 → warp_beacon-2.6.30}/warp_beacon/mediainfo/audio.py +0 -0
- {warp_beacon-2.6.28 → warp_beacon-2.6.30}/warp_beacon/mediainfo/silencer.py +0 -0
- {warp_beacon-2.6.28 → warp_beacon-2.6.30}/warp_beacon/mediainfo/video.py +0 -0
- {warp_beacon-2.6.28 → warp_beacon-2.6.30}/warp_beacon/scheduler/__init__.py +0 -0
- {warp_beacon-2.6.28 → warp_beacon-2.6.30}/warp_beacon/scheduler/scheduler.py +0 -0
- {warp_beacon-2.6.28 → warp_beacon-2.6.30}/warp_beacon/scraper/abstract.py +0 -0
- {warp_beacon-2.6.28 → warp_beacon-2.6.30}/warp_beacon/scraper/account_selector.py +0 -0
- {warp_beacon-2.6.28 → warp_beacon-2.6.30}/warp_beacon/scraper/exceptions.py +0 -0
- {warp_beacon-2.6.28 → warp_beacon-2.6.30}/warp_beacon/scraper/fail_handler.py +0 -0
- {warp_beacon-2.6.28 → warp_beacon-2.6.30}/warp_beacon/scraper/instagram/__init__.py +0 -0
- {warp_beacon-2.6.28 → warp_beacon-2.6.30}/warp_beacon/scraper/instagram/captcha.py +0 -0
- {warp_beacon-2.6.28 → warp_beacon-2.6.30}/warp_beacon/scraper/instagram/instagram.py +0 -0
- {warp_beacon-2.6.28 → warp_beacon-2.6.30}/warp_beacon/scraper/link_resolver.py +0 -0
- {warp_beacon-2.6.28 → warp_beacon-2.6.30}/warp_beacon/scraper/youtube/__init__.py +0 -0
- {warp_beacon-2.6.28 → warp_beacon-2.6.30}/warp_beacon/scraper/youtube/abstract.py +0 -0
- {warp_beacon-2.6.28 → warp_beacon-2.6.30}/warp_beacon/scraper/youtube/music.py +0 -0
- {warp_beacon-2.6.28 → warp_beacon-2.6.30}/warp_beacon/scraper/youtube/shorts.py +0 -0
- {warp_beacon-2.6.28 → warp_beacon-2.6.30}/warp_beacon/scraper/youtube/youtube.py +0 -0
- {warp_beacon-2.6.28 → warp_beacon-2.6.30}/warp_beacon/storage/__init__.py +0 -0
- {warp_beacon-2.6.28 → warp_beacon-2.6.30}/warp_beacon/storage/mongo.py +0 -0
- {warp_beacon-2.6.28 → warp_beacon-2.6.30}/warp_beacon/telegram/__init__.py +0 -0
- {warp_beacon-2.6.28 → warp_beacon-2.6.30}/warp_beacon/telegram/bot.py +0 -0
- {warp_beacon-2.6.28 → warp_beacon-2.6.30}/warp_beacon/telegram/caption_shortener.py +0 -0
- {warp_beacon-2.6.28 → warp_beacon-2.6.30}/warp_beacon/telegram/handlers.py +0 -0
- {warp_beacon-2.6.28 → warp_beacon-2.6.30}/warp_beacon/telegram/placeholder_message.py +0 -0
- {warp_beacon-2.6.28 → warp_beacon-2.6.30}/warp_beacon/telegram/utils.py +0 -0
- {warp_beacon-2.6.28 → warp_beacon-2.6.30}/warp_beacon/uploader/__init__.py +0 -0
- {warp_beacon-2.6.28 → warp_beacon-2.6.30}/warp_beacon/warp_beacon.py +0 -0
- {warp_beacon-2.6.28 → warp_beacon-2.6.30}/warp_beacon/yt_auth.py +0 -0
- {warp_beacon-2.6.28 → warp_beacon-2.6.30}/warp_beacon.egg-info/SOURCES.txt +0 -0
- {warp_beacon-2.6.28 → warp_beacon-2.6.30}/warp_beacon.egg-info/dependency_links.txt +0 -0
- {warp_beacon-2.6.28 → warp_beacon-2.6.30}/warp_beacon.egg-info/entry_points.txt +0 -0
- {warp_beacon-2.6.28 → warp_beacon-2.6.30}/warp_beacon.egg-info/requires.txt +0 -0
- {warp_beacon-2.6.28 → warp_beacon-2.6.30}/warp_beacon.egg-info/top_level.txt +0 -0
@@ -23,20 +23,25 @@ class InstagramHuman(object):
|
|
23
23
|
content = self.scrapler.cl.media_info(m.pk)
|
24
24
|
logging.info("Watched content with id '%s'", str(content.pk))
|
25
25
|
self.operations_count += 1
|
26
|
-
time.sleep(random.uniform(
|
26
|
+
time.sleep(random.uniform(8, 30))
|
27
27
|
except Exception as e:
|
28
28
|
logging.warning("Exception while watching content")
|
29
29
|
logging.exception(e)
|
30
30
|
|
31
31
|
def scroll_content(self, last_pk: int) -> None:
|
32
|
+
timeline_initialized = False
|
32
33
|
if random.random() > 0.7:
|
34
|
+
timeline_initialized = True
|
35
|
+
self.scrapler.timeline_cursor = self.scrapler.download_hndlr(self.scrapler.cl.get_timeline_feed, reason="cold_start_fetch")
|
33
36
|
logging.info("Starting to watch related reels with media_pk '%d'", last_pk)
|
34
37
|
media = self.scrapler.download_hndlr(self.scrapler.cl.reels, amount=random.randint(4, 10), last_media_pk=last_pk)
|
35
38
|
self.operations_count += 1
|
36
39
|
self.watch_content(media)
|
37
40
|
|
38
|
-
if random.random() >
|
41
|
+
if random.random() > 0.9:
|
39
42
|
time.sleep(random.uniform(2, 20))
|
43
|
+
if not timeline_initialized:
|
44
|
+
self.scrapler.timeline_cursor = self.scrapler.download_hndlr(self.scrapler.cl.get_timeline_feed, reason="cold_start_fetch")
|
40
45
|
logging.info("Starting to explore reels with media_pk '%d'", last_pk)
|
41
46
|
media = self.scrapler.download_hndlr(self.scrapler.cl.explore_reels, amount=random.randint(4, 10), last_media_pk=last_pk)
|
42
47
|
self.operations_count += 1
|
@@ -91,6 +96,12 @@ class InstagramHuman(object):
|
|
91
96
|
self.scrapler.download_hndlr(self.scrapler.cl.get_reels_tray_feed, "pull_to_refresh")
|
92
97
|
self.operations_count += 1
|
93
98
|
self.random_pause()
|
99
|
+
if random.random() > 0.4:
|
100
|
+
logging.info("Watching reels ...")
|
101
|
+
reels = self.scrapler.download_hndlr(self.scrapler.cl.reels)
|
102
|
+
self.operations_count += 1
|
103
|
+
self.watch_content(reels)
|
104
|
+
self.random_pause()
|
94
105
|
except Exception as e:
|
95
106
|
logging.warning("Error in daytime_routine")
|
96
107
|
logging.exception(e)
|
@@ -115,8 +126,9 @@ class InstagramHuman(object):
|
|
115
126
|
self.random_pause()
|
116
127
|
if random.random() > 0.4:
|
117
128
|
logging.info("Watching reels ...")
|
118
|
-
self.scrapler.download_hndlr(self.scrapler.cl.reels)
|
129
|
+
reels = self.scrapler.download_hndlr(self.scrapler.cl.reels)
|
119
130
|
self.operations_count += 1
|
131
|
+
self.watch_content(reels)
|
120
132
|
self.random_pause()
|
121
133
|
if random.random() > 0.6:
|
122
134
|
logging.info("Simulation profile view ...")
|
@@ -133,6 +145,12 @@ class InstagramHuman(object):
|
|
133
145
|
self.scrapler.download_hndlr(self.scrapler.cl.direct_active_presence)
|
134
146
|
self.operations_count += 1
|
135
147
|
self.random_pause(short=True)
|
148
|
+
if random.random() > 0.8:
|
149
|
+
logging.info("Watching reels ...")
|
150
|
+
reels = self.scrapler.download_hndlr(self.scrapler.cl.reels)
|
151
|
+
self.operations_count += 1
|
152
|
+
self.watch_content(reels)
|
153
|
+
self.random_pause()
|
136
154
|
except Exception as e:
|
137
155
|
logging.warning("Error in night_routine")
|
138
156
|
logging.exception(e)
|
@@ -138,7 +138,7 @@ class AsyncDownloader(object):
|
|
138
138
|
from warp_beacon.scraper.instagram.instagram import InstagramScraper
|
139
139
|
actor = InstagramScraper(selector.get_current(), proxy)
|
140
140
|
selector.inc_ig_request_count()
|
141
|
-
if selector.get_ig_request_count() >= int(os.environ.get("IG_REQUESTS_PER_ACCOUNT", default="10")):
|
141
|
+
if not job.scroll_content and selector.get_ig_request_count() >= int(os.environ.get("IG_REQUESTS_PER_ACCOUNT", default="10")):
|
142
142
|
logging.info("The account request limit has been reached. Selecting the next account.")
|
143
143
|
selector.reset_ig_request_count()
|
144
144
|
selector.next()
|
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
|