warp-beacon 2.3.29__py3-none-any.whl → 2.3.31__py3-none-any.whl
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/__version__.py +1 -1
- warp_beacon/scheduler/scheduler.py +2 -2
- warp_beacon/telegram/bot.py +3 -0
- warp_beacon/uploader/__init__.py +35 -17
- {warp_beacon-2.3.29.dist-info → warp_beacon-2.3.31.dist-info}/METADATA +1 -1
- {warp_beacon-2.3.29.dist-info → warp_beacon-2.3.31.dist-info}/RECORD +10 -10
- {warp_beacon-2.3.29.dist-info → warp_beacon-2.3.31.dist-info}/LICENSE +0 -0
- {warp_beacon-2.3.29.dist-info → warp_beacon-2.3.31.dist-info}/WHEEL +0 -0
- {warp_beacon-2.3.29.dist-info → warp_beacon-2.3.31.dist-info}/entry_points.txt +0 -0
- {warp_beacon-2.3.29.dist-info → warp_beacon-2.3.31.dist-info}/top_level.txt +0 -0
warp_beacon/__version__.py
CHANGED
@@ -1,2 +1,2 @@
|
|
1
|
-
__version__ = "2.3.
|
1
|
+
__version__ = "2.3.31"
|
2
2
|
|
@@ -85,8 +85,8 @@ class IGScheduler(object):
|
|
85
85
|
now = datetime.datetime.now()
|
86
86
|
if 4 <= now.hour < 7:
|
87
87
|
logging.info("Scheduler is paused due to night hours (4:00 - 7:00)")
|
88
|
-
self.
|
89
|
-
|
88
|
+
self.state["remaining"] = 10800
|
89
|
+
self.save_state()
|
90
90
|
|
91
91
|
if self.state["remaining"] <= 0:
|
92
92
|
self.state["remaining"] = randrange(8400, 26200)
|
warp_beacon/telegram/bot.py
CHANGED
@@ -170,6 +170,9 @@ class Bot(object):
|
|
170
170
|
if is_group and not is_youtube and CaptionShortner.need_short(job.canonical_name):
|
171
171
|
caption = f"{html.escape(CaptionShortner.smart_truncate_html(job.canonical_name))} ..."
|
172
172
|
job.short_text = True
|
173
|
+
elif is_group:
|
174
|
+
# short enough
|
175
|
+
caption = html.escape(job.canonical_name)
|
173
176
|
# Captions only for YouTube in groups; empty otherwise.
|
174
177
|
# Might be too long for Telegram, so we skip them.
|
175
178
|
if is_youtube and is_group:
|
warp_beacon/uploader/__init__.py
CHANGED
@@ -1,15 +1,13 @@
|
|
1
1
|
import os
|
2
|
-
import threading
|
3
|
-
import multiprocessing
|
4
|
-
from warp_beacon.jobs.upload_job import UploadJob
|
5
2
|
import logging
|
6
|
-
|
7
|
-
import asyncio
|
8
|
-
|
9
3
|
from typing import Callable
|
4
|
+
import asyncio
|
5
|
+
import threading
|
6
|
+
import multiprocessing
|
10
7
|
|
11
|
-
from warp_beacon.storage import Storage
|
12
8
|
from warp_beacon.jobs.types import JobType
|
9
|
+
from warp_beacon.jobs.upload_job import UploadJob
|
10
|
+
from warp_beacon.storage import Storage
|
13
11
|
|
14
12
|
class AsyncUploader(object):
|
15
13
|
__JOE_BIDEN_WAKEUP = None
|
@@ -40,10 +38,9 @@ class AsyncUploader(object):
|
|
40
38
|
self.threads.append(thread)
|
41
39
|
|
42
40
|
def add_callback(self, message_id: int, callback: Callable) -> None:
|
43
|
-
def callback_wrap(*args, **kwargs) -> None:
|
44
|
-
|
41
|
+
async def callback_wrap(*args, **kwargs) -> None:
|
42
|
+
await callback(*args, **kwargs)
|
45
43
|
#self.remove_callback(message_id)
|
46
|
-
return ret
|
47
44
|
self.callbacks[message_id] = {"callback": callback_wrap}
|
48
45
|
|
49
46
|
def remove_callback(self, message_id: int) -> None:
|
@@ -83,7 +80,11 @@ class AsyncUploader(object):
|
|
83
80
|
if job is self.__JOE_BIDEN_WAKEUP:
|
84
81
|
break
|
85
82
|
if job.is_message_to_admin and job.message_text and self.admin_message_callback:
|
86
|
-
asyncio.ensure_future(self.admin_message_callback(job.message_text, job.account_admins, job.yt_auth), loop=self.loop)
|
83
|
+
#asyncio.ensure_future(self.admin_message_callback(job.message_text, job.account_admins, job.yt_auth), loop=self.loop)
|
84
|
+
self.loop.call_soon_threadsafe(
|
85
|
+
asyncio.create_task,
|
86
|
+
self.admin_message_callback(job.message_text, job.account_admins, job.yt_auth)
|
87
|
+
)
|
87
88
|
continue
|
88
89
|
|
89
90
|
path = ""
|
@@ -106,20 +107,29 @@ class AsyncUploader(object):
|
|
106
107
|
if job.job_failed:
|
107
108
|
logging.info("URL '%s' download failed. Skipping upload job ...", job.url)
|
108
109
|
if job.job_failed_msg: # we want to say something to user
|
109
|
-
|
110
|
+
self.loop.call_soon_threadsafe(
|
111
|
+
asyncio.create_task,
|
112
|
+
self.callbacks[message_id]["callback"](job)
|
113
|
+
)
|
110
114
|
self.process_done(uniq_id)
|
111
115
|
self.remove_callback(message_id)
|
112
116
|
continue
|
113
117
|
|
114
118
|
if job.replay:
|
115
|
-
|
119
|
+
self.loop.call_soon_threadsafe(
|
120
|
+
asyncio.create_task,
|
121
|
+
self.callbacks[message_id]["callback"](job)
|
122
|
+
)
|
116
123
|
self.remove_callback(message_id)
|
117
124
|
continue
|
118
125
|
|
119
126
|
if job.job_warning:
|
120
127
|
logging.info("Job warning occurred ...")
|
121
128
|
if job.job_warning_msg:
|
122
|
-
|
129
|
+
self.loop.call_soon_threadsafe(
|
130
|
+
asyncio.create_task,
|
131
|
+
self.callbacks[message_id]["callback"](job)
|
132
|
+
)
|
123
133
|
continue
|
124
134
|
if in_process:
|
125
135
|
db_list_dicts = self.storage.db_lookup_id(uniq_id)
|
@@ -131,14 +141,22 @@ class AsyncUploader(object):
|
|
131
141
|
job.media_type = JobType.COLLECTION
|
132
142
|
elif dlds_len:
|
133
143
|
job.tg_file_id = ",".join(tg_file_ids)
|
134
|
-
|
135
|
-
|
144
|
+
db_data = db_list_dicts.pop()
|
145
|
+
job.media_type = JobType[db_data["media_type"].upper()]
|
146
|
+
job.canonical_name = db_data.get("canonical_name", "")
|
147
|
+
self.loop.call_soon_threadsafe(
|
148
|
+
asyncio.create_task,
|
149
|
+
self.callbacks[message_id]["callback"](job)
|
150
|
+
)
|
136
151
|
self.process_done(uniq_id)
|
137
152
|
self.remove_callback(message_id)
|
138
153
|
else:
|
139
154
|
self.queue_task(job)
|
140
155
|
else:
|
141
|
-
|
156
|
+
self.loop.call_soon_threadsafe(
|
157
|
+
asyncio.create_task,
|
158
|
+
self.callbacks[message_id]["callback"](job)
|
159
|
+
)
|
142
160
|
self.process_done(uniq_id)
|
143
161
|
self.remove_callback(message_id)
|
144
162
|
else:
|
@@ -4,7 +4,7 @@ var/warp_beacon/accounts.json,sha256=OsXdncs6h88xrF_AP6_WDCK1waGBn9SR-uYdIeK37GM
|
|
4
4
|
var/warp_beacon/placeholder.gif,sha256=cE5CGJVaop4Sx21zx6j4AyoHU0ncmvQuS2o6hJfEH88,6064
|
5
5
|
var/warp_beacon/proxies.json,sha256=VnjlQDXumOEq72ZFjbh6IqHS1TEHqn8HPYAZqWCeSIA,95
|
6
6
|
warp_beacon/__init__.py,sha256=_rThNODmz0nDp_n4mWo_HKaNFE5jk1_7cRhHyYaencI,163
|
7
|
-
warp_beacon/__version__.py,sha256
|
7
|
+
warp_beacon/__version__.py,sha256=6WuiVqC37jmvlGi1GNaJkQDAVLgaOvkYIZwJr1WO5FM,24
|
8
8
|
warp_beacon/warp_beacon.py,sha256=7KEtZDj-pdhtl6m-zFLsSojs1ZR4o7L0xbqtdmYPvfE,342
|
9
9
|
warp_beacon/compress/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
10
10
|
warp_beacon/compress/video.py,sha256=_PDMVYCyzLYxHv1uZmmzGcG_8rjaZr7BTXsXTTy_oS4,2846
|
@@ -19,7 +19,7 @@ warp_beacon/mediainfo/audio.py,sha256=ous88kwQj4bDIChN5wnGil5LqTs0IQHH0d-nyrL0-Z
|
|
19
19
|
warp_beacon/mediainfo/silencer.py,sha256=qxMuViOoVwUYb60uCVvqHiGrqByR1_4_rqMT-XdMkwc,1813
|
20
20
|
warp_beacon/mediainfo/video.py,sha256=UBZrhTN5IDI-aYu6tsJEILo9nFkjHhkldGVFmvV7tEI,2480
|
21
21
|
warp_beacon/scheduler/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
22
|
-
warp_beacon/scheduler/scheduler.py,sha256=
|
22
|
+
warp_beacon/scheduler/scheduler.py,sha256=WFfV5flS4xtqNjalM95KW4jLMJ70PskRpP9e7cUQM2U,2796
|
23
23
|
warp_beacon/scraper/__init__.py,sha256=V_C5SmAmRtjFfVBtTotOHCW3ILMQ8m_ulrBF6ry59_A,16944
|
24
24
|
warp_beacon/scraper/abstract.py,sha256=6A6KuBUHZhu8VAyBwLgmnxMPHJcLpgwLapmULy8hpoA,2726
|
25
25
|
warp_beacon/scraper/account_selector.py,sha256=zv5ci_Y7W-tzKeFklffpLts19a1wFg69fqefK-_i_pk,5122
|
@@ -36,15 +36,15 @@ warp_beacon/scraper/youtube/youtube.py,sha256=fGrbjBngvvNdpzhb1yZVedNW0_tCrLc31V
|
|
36
36
|
warp_beacon/storage/__init__.py,sha256=0Vajd0oITKJfu2vmNx5uQSt3-L6vwIvUYWJo8HZCjco,3398
|
37
37
|
warp_beacon/storage/mongo.py,sha256=qC4ZiO8XXvPnP0rJwz4CJx42pqFsyAjCiW10W5QdT6E,527
|
38
38
|
warp_beacon/telegram/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
39
|
-
warp_beacon/telegram/bot.py,sha256=
|
39
|
+
warp_beacon/telegram/bot.py,sha256=T_5NUYFgPAuX6PVefYsdB_3ma3VHwSYhJnTZKNWEWY0,17123
|
40
40
|
warp_beacon/telegram/caption_shortener.py,sha256=EnguNCF52ne7y4P-iJAbI6K3sqoJqJbND_dX5Fhwkv0,1549
|
41
41
|
warp_beacon/telegram/handlers.py,sha256=XXIfdV_RCj7tyZMPXchuKmGoDdweOaR08ADDaBPWo_U,9426
|
42
42
|
warp_beacon/telegram/placeholder_message.py,sha256=wN9-BRiyrtHG-EvXtZkGJHt2CX71munQ57ITttjt0mw,6400
|
43
43
|
warp_beacon/telegram/utils.py,sha256=9uebX53G16mV7ER7WgfdWBLFHHw14S8HBt9URrIskg0,4440
|
44
|
-
warp_beacon/uploader/__init__.py,sha256=
|
45
|
-
warp_beacon-2.3.
|
46
|
-
warp_beacon-2.3.
|
47
|
-
warp_beacon-2.3.
|
48
|
-
warp_beacon-2.3.
|
49
|
-
warp_beacon-2.3.
|
50
|
-
warp_beacon-2.3.
|
44
|
+
warp_beacon/uploader/__init__.py,sha256=E9rlZIf7xlQz6MutMOwJ8S5Vm2uheR5nv23Kv8duRQg,5427
|
45
|
+
warp_beacon-2.3.31.dist-info/LICENSE,sha256=xx0jnfkXJvxRnG63LTGOxlggYnIysveWIZ6H3PNdCrQ,11357
|
46
|
+
warp_beacon-2.3.31.dist-info/METADATA,sha256=NJdQjwobTeXr3CfN4u7ojakyoLlIbPXXghSbVBHj3uc,21723
|
47
|
+
warp_beacon-2.3.31.dist-info/WHEEL,sha256=52BFRY2Up02UkjOa29eZOS2VxUrpPORXg1pkohGGUS8,91
|
48
|
+
warp_beacon-2.3.31.dist-info/entry_points.txt,sha256=eSB61Rb89d56WY0O-vEIQwkn18J-4CMrJcLA_R_8h3g,119
|
49
|
+
warp_beacon-2.3.31.dist-info/top_level.txt,sha256=2iKFlYwJ-meO9sCX4OGEP1hhQN17t2KFksQ5dXMhXUA,1103
|
50
|
+
warp_beacon-2.3.31.dist-info/RECORD,,
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|