warp-beacon 2.8.17__tar.gz → 2.8.18__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.8.17/warp_beacon.egg-info → warp_beacon-2.8.18}/PKG-INFO +1 -1
- warp_beacon-2.8.18/warp_beacon/__version__.py +2 -0
- {warp_beacon-2.8.17 → warp_beacon-2.8.18}/warp_beacon/scraper/X/X.py +3 -3
- {warp_beacon-2.8.17 → warp_beacon-2.8.18}/warp_beacon/telegram/handlers.py +1 -1
- {warp_beacon-2.8.17 → warp_beacon-2.8.18}/warp_beacon/uploader/__init__.py +9 -10
- {warp_beacon-2.8.17 → warp_beacon-2.8.18/warp_beacon.egg-info}/PKG-INFO +1 -1
- warp_beacon-2.8.17/warp_beacon/__version__.py +0 -2
- {warp_beacon-2.8.17 → warp_beacon-2.8.18}/LICENSE +0 -0
- {warp_beacon-2.8.17 → warp_beacon-2.8.18}/MANIFEST.in +0 -0
- {warp_beacon-2.8.17 → warp_beacon-2.8.18}/README.md +0 -0
- {warp_beacon-2.8.17 → warp_beacon-2.8.18}/assets/cc-group-black.png +0 -0
- {warp_beacon-2.8.17 → warp_beacon-2.8.18}/assets/placeholder.gif +0 -0
- {warp_beacon-2.8.17 → warp_beacon-2.8.18}/etc/.gitignore +0 -0
- {warp_beacon-2.8.17 → warp_beacon-2.8.18}/etc/accounts.json +0 -0
- {warp_beacon-2.8.17 → warp_beacon-2.8.18}/etc/proxies.json +0 -0
- {warp_beacon-2.8.17 → warp_beacon-2.8.18}/etc/warp_beacon.conf +0 -0
- {warp_beacon-2.8.17 → warp_beacon-2.8.18}/etc/warp_beacon.service +0 -0
- {warp_beacon-2.8.17 → warp_beacon-2.8.18}/pyproject.toml +0 -0
- {warp_beacon-2.8.17 → warp_beacon-2.8.18}/setup.cfg +0 -0
- {warp_beacon-2.8.17 → warp_beacon-2.8.18}/setup.py +0 -0
- {warp_beacon-2.8.17 → warp_beacon-2.8.18}/warp_beacon/__init__.py +0 -0
- {warp_beacon-2.8.17 → warp_beacon-2.8.18}/warp_beacon/compress/__init__.py +0 -0
- {warp_beacon-2.8.17 → warp_beacon-2.8.18}/warp_beacon/compress/video.py +0 -0
- {warp_beacon-2.8.17 → warp_beacon-2.8.18}/warp_beacon/jobs/__init__.py +0 -0
- {warp_beacon-2.8.17 → warp_beacon-2.8.18}/warp_beacon/jobs/abstract.py +0 -0
- {warp_beacon-2.8.17 → warp_beacon-2.8.18}/warp_beacon/jobs/download_job.py +0 -0
- {warp_beacon-2.8.17 → warp_beacon-2.8.18}/warp_beacon/jobs/types.py +0 -0
- {warp_beacon-2.8.17 → warp_beacon-2.8.18}/warp_beacon/jobs/upload_job.py +0 -0
- {warp_beacon-2.8.17 → warp_beacon-2.8.18}/warp_beacon/mediainfo/__init__.py +0 -0
- {warp_beacon-2.8.17 → warp_beacon-2.8.18}/warp_beacon/mediainfo/abstract.py +0 -0
- {warp_beacon-2.8.17 → warp_beacon-2.8.18}/warp_beacon/mediainfo/audio.py +0 -0
- {warp_beacon-2.8.17 → warp_beacon-2.8.18}/warp_beacon/mediainfo/silencer.py +0 -0
- {warp_beacon-2.8.17 → warp_beacon-2.8.18}/warp_beacon/mediainfo/video.py +0 -0
- {warp_beacon-2.8.17 → warp_beacon-2.8.18}/warp_beacon/scheduler/__init__.py +0 -0
- {warp_beacon-2.8.17 → warp_beacon-2.8.18}/warp_beacon/scheduler/instagram_human.py +0 -0
- {warp_beacon-2.8.17 → warp_beacon-2.8.18}/warp_beacon/scheduler/scheduler.py +0 -0
- {warp_beacon-2.8.17 → warp_beacon-2.8.18}/warp_beacon/scraper/X/__init__.py +0 -0
- {warp_beacon-2.8.17 → warp_beacon-2.8.18}/warp_beacon/scraper/X/abstract.py +0 -0
- {warp_beacon-2.8.17 → warp_beacon-2.8.18}/warp_beacon/scraper/X/types.py +0 -0
- {warp_beacon-2.8.17 → warp_beacon-2.8.18}/warp_beacon/scraper/__init__.py +0 -0
- {warp_beacon-2.8.17 → warp_beacon-2.8.18}/warp_beacon/scraper/abstract.py +0 -0
- {warp_beacon-2.8.17 → warp_beacon-2.8.18}/warp_beacon/scraper/account_selector.py +0 -0
- {warp_beacon-2.8.17 → warp_beacon-2.8.18}/warp_beacon/scraper/exceptions.py +0 -0
- {warp_beacon-2.8.17 → warp_beacon-2.8.18}/warp_beacon/scraper/fail_handler.py +0 -0
- {warp_beacon-2.8.17 → warp_beacon-2.8.18}/warp_beacon/scraper/instagram/__init__.py +0 -0
- {warp_beacon-2.8.17 → warp_beacon-2.8.18}/warp_beacon/scraper/instagram/captcha.py +0 -0
- {warp_beacon-2.8.17 → warp_beacon-2.8.18}/warp_beacon/scraper/instagram/instagram.py +0 -0
- {warp_beacon-2.8.17 → warp_beacon-2.8.18}/warp_beacon/scraper/instagram/wb_instagrapi.py +0 -0
- {warp_beacon-2.8.17 → warp_beacon-2.8.18}/warp_beacon/scraper/link_resolver.py +0 -0
- {warp_beacon-2.8.17 → warp_beacon-2.8.18}/warp_beacon/scraper/utils.py +0 -0
- {warp_beacon-2.8.17 → warp_beacon-2.8.18}/warp_beacon/scraper/youtube/__init__.py +0 -0
- {warp_beacon-2.8.17 → warp_beacon-2.8.18}/warp_beacon/scraper/youtube/abstract.py +0 -0
- {warp_beacon-2.8.17 → warp_beacon-2.8.18}/warp_beacon/scraper/youtube/music.py +0 -0
- {warp_beacon-2.8.17 → warp_beacon-2.8.18}/warp_beacon/scraper/youtube/shorts.py +0 -0
- {warp_beacon-2.8.17 → warp_beacon-2.8.18}/warp_beacon/scraper/youtube/youtube.py +0 -0
- {warp_beacon-2.8.17 → warp_beacon-2.8.18}/warp_beacon/storage/__init__.py +0 -0
- {warp_beacon-2.8.17 → warp_beacon-2.8.18}/warp_beacon/storage/mongo.py +0 -0
- {warp_beacon-2.8.17 → warp_beacon-2.8.18}/warp_beacon/telegram/__init__.py +0 -0
- {warp_beacon-2.8.17 → warp_beacon-2.8.18}/warp_beacon/telegram/bot.py +0 -0
- {warp_beacon-2.8.17 → warp_beacon-2.8.18}/warp_beacon/telegram/caption_shortener.py +0 -0
- {warp_beacon-2.8.17 → warp_beacon-2.8.18}/warp_beacon/telegram/download_status.py +0 -0
- {warp_beacon-2.8.17 → warp_beacon-2.8.18}/warp_beacon/telegram/edit_message.py +0 -0
- {warp_beacon-2.8.17 → warp_beacon-2.8.18}/warp_beacon/telegram/placeholder_message.py +0 -0
- {warp_beacon-2.8.17 → warp_beacon-2.8.18}/warp_beacon/telegram/progress_bar.py +0 -0
- {warp_beacon-2.8.17 → warp_beacon-2.8.18}/warp_beacon/telegram/progress_file_reader.py +0 -0
- {warp_beacon-2.8.17 → warp_beacon-2.8.18}/warp_beacon/telegram/types.py +0 -0
- {warp_beacon-2.8.17 → warp_beacon-2.8.18}/warp_beacon/telegram/utils.py +0 -0
- {warp_beacon-2.8.17 → warp_beacon-2.8.18}/warp_beacon/warp_beacon.py +0 -0
- {warp_beacon-2.8.17 → warp_beacon-2.8.18}/warp_beacon/yt_auth.py +0 -0
- {warp_beacon-2.8.17 → warp_beacon-2.8.18}/warp_beacon.egg-info/SOURCES.txt +0 -0
- {warp_beacon-2.8.17 → warp_beacon-2.8.18}/warp_beacon.egg-info/dependency_links.txt +0 -0
- {warp_beacon-2.8.17 → warp_beacon-2.8.18}/warp_beacon.egg-info/entry_points.txt +0 -0
- {warp_beacon-2.8.17 → warp_beacon-2.8.18}/warp_beacon.egg-info/requires.txt +0 -0
- {warp_beacon-2.8.17 → warp_beacon-2.8.18}/warp_beacon.egg-info/top_level.txt +0 -0
@@ -20,10 +20,10 @@ class XScraper(XAbstract):
|
|
20
20
|
def extract_canonical_name(self, media: dict) -> str:
|
21
21
|
ret = ""
|
22
22
|
try:
|
23
|
-
if media.get("title"
|
23
|
+
if media.get("title"):
|
24
24
|
ret = media["title"]
|
25
|
-
|
26
|
-
ret
|
25
|
+
elif media.get("description"):
|
26
|
+
ret = media["description"]
|
27
27
|
except Exception as e:
|
28
28
|
logging.warning("Failed to extract canonical media name!")
|
29
29
|
logging.exception(e)
|
@@ -177,7 +177,7 @@ class Handlers(object):
|
|
177
177
|
url = new_url
|
178
178
|
origin = Origin.YOUTUBE
|
179
179
|
if origin is Origin.UNKNOWN:
|
180
|
-
logging.info("Only Instagram, YouTube Shorts
|
180
|
+
logging.info("Only Instagram, YouTube Shorts, YouTube Music and X are now supported. Skipping.")
|
181
181
|
continue
|
182
182
|
entities, tg_file_ids = [], []
|
183
183
|
uniq_id = Storage.compute_uniq(url)
|
@@ -12,7 +12,6 @@ from warp_beacon.storage import Storage
|
|
12
12
|
|
13
13
|
class AsyncUploader(object):
|
14
14
|
__JOE_BIDEN_WAKEUP = None
|
15
|
-
pool_size = 1
|
16
15
|
|
17
16
|
def __init__(self,
|
18
17
|
loop: asyncio.AbstractEventLoop,
|
@@ -65,6 +64,9 @@ class AsyncUploader(object):
|
|
65
64
|
def queue_task(self, job: UploadJob) -> None:
|
66
65
|
self.job_queue.put_nowait(job)
|
67
66
|
|
67
|
+
async def callback_wrap(self, *args, **kwargs) -> None:
|
68
|
+
await self.upload_wrapper(*args, **kwargs)
|
69
|
+
|
68
70
|
def do_work(self) -> None:
|
69
71
|
logging.info("Upload worker started")
|
70
72
|
while self.allow_loop:
|
@@ -103,16 +105,13 @@ class AsyncUploader(object):
|
|
103
105
|
else:
|
104
106
|
logging.info("Accepted upload job, file(s): '%s'", path)
|
105
107
|
|
106
|
-
async def callback_wrap(*args, **kwargs) -> None:
|
107
|
-
await self.upload_wrapper(*args, **kwargs)
|
108
|
-
|
109
108
|
try:
|
110
109
|
if job.job_failed:
|
111
110
|
logging.info("URL '%s' download failed. Skipping upload job ...", job.url)
|
112
111
|
if job.job_failed_msg: # we want to say something to user
|
113
112
|
self.loop.call_soon_threadsafe(
|
114
113
|
asyncio.create_task,
|
115
|
-
callback_wrap(job)
|
114
|
+
self.callback_wrap(job)
|
116
115
|
)
|
117
116
|
self.process_done(uniq_id)
|
118
117
|
continue
|
@@ -120,7 +119,7 @@ class AsyncUploader(object):
|
|
120
119
|
if job.replay:
|
121
120
|
self.loop.call_soon_threadsafe(
|
122
121
|
asyncio.create_task,
|
123
|
-
callback_wrap(job)
|
122
|
+
self.callback_wrap(job)
|
124
123
|
)
|
125
124
|
continue
|
126
125
|
|
@@ -129,7 +128,7 @@ class AsyncUploader(object):
|
|
129
128
|
if job.job_warning_msg:
|
130
129
|
self.loop.call_soon_threadsafe(
|
131
130
|
asyncio.create_task,
|
132
|
-
callback_wrap(job)
|
131
|
+
self.callback_wrap(job)
|
133
132
|
)
|
134
133
|
continue
|
135
134
|
if in_process:
|
@@ -147,7 +146,7 @@ class AsyncUploader(object):
|
|
147
146
|
job.canonical_name = db_data.get("canonical_name", "")
|
148
147
|
self.loop.call_soon_threadsafe(
|
149
148
|
asyncio.create_task,
|
150
|
-
callback_wrap(job)
|
149
|
+
self.callback_wrap(job)
|
151
150
|
)
|
152
151
|
self.process_done(uniq_id)
|
153
152
|
else:
|
@@ -155,7 +154,7 @@ class AsyncUploader(object):
|
|
155
154
|
else:
|
156
155
|
self.loop.call_soon_threadsafe(
|
157
156
|
asyncio.create_task,
|
158
|
-
callback_wrap(job)
|
157
|
+
self.callback_wrap(job)
|
159
158
|
)
|
160
159
|
self.process_done(uniq_id)
|
161
160
|
except Exception as e:
|
@@ -165,4 +164,4 @@ class AsyncUploader(object):
|
|
165
164
|
except Exception as e:
|
166
165
|
logging.error("Exception occurred inside upload worker!")
|
167
166
|
logging.exception(e)
|
168
|
-
|
167
|
+
logging.info("Thread done")
|
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
|
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
|