warp-beacon 2.1.11__py3-none-any.whl → 2.1.12__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/telegram/bot.py +41 -21
- {warp_beacon-2.1.11.dist-info → warp_beacon-2.1.12.dist-info}/METADATA +1 -1
- {warp_beacon-2.1.11.dist-info → warp_beacon-2.1.12.dist-info}/RECORD +8 -8
- {warp_beacon-2.1.11.dist-info → warp_beacon-2.1.12.dist-info}/LICENSE +0 -0
- {warp_beacon-2.1.11.dist-info → warp_beacon-2.1.12.dist-info}/WHEEL +0 -0
- {warp_beacon-2.1.11.dist-info → warp_beacon-2.1.12.dist-info}/entry_points.txt +0 -0
- {warp_beacon-2.1.11.dist-info → warp_beacon-2.1.12.dist-info}/top_level.txt +0 -0
warp_beacon/__version__.py
CHANGED
@@ -1,2 +1,2 @@
|
|
1
|
-
__version__ = "2.1.
|
1
|
+
__version__ = "2.1.12"
|
2
2
|
|
warp_beacon/telegram/bot.py
CHANGED
@@ -146,12 +146,28 @@ class Bot(object):
|
|
146
146
|
|
147
147
|
return []
|
148
148
|
|
149
|
+
def build_signature_caption(self, job: UploadJob) -> str:
|
150
|
+
caption = ""
|
151
|
+
if job.chat_type in (ChatType.GROUP, ChatType.SUPERGROUP):
|
152
|
+
if job.source_usename:
|
153
|
+
caption += f"Requested by **@{job.source_usename}**"
|
154
|
+
if job.source_usename and job.url:
|
155
|
+
caption += " | "
|
156
|
+
if job.url:
|
157
|
+
caption += f"[Source link]({job.url})"
|
158
|
+
|
159
|
+
return caption
|
160
|
+
|
149
161
|
def build_tg_args(self, job: UploadJob) -> dict:
|
150
162
|
args = {}
|
151
163
|
if job.media_type == JobType.VIDEO:
|
152
164
|
if job.tg_file_id:
|
153
165
|
if job.placeholder_message_id:
|
154
|
-
args["media"] = InputMediaVideo(
|
166
|
+
args["media"] = InputMediaVideo(
|
167
|
+
media=job.tg_file_id.replace(":video", ''),
|
168
|
+
supports_streaming=True,
|
169
|
+
caption=self.build_signature_caption(job)
|
170
|
+
)
|
155
171
|
else:
|
156
172
|
args["video"] = job.tg_file_id.replace(":video", '')
|
157
173
|
else:
|
@@ -162,7 +178,8 @@ class Bot(object):
|
|
162
178
|
width=job.media_info["width"],
|
163
179
|
height=job.media_info["height"],
|
164
180
|
duration=round(job.media_info["duration"]),
|
165
|
-
thumb=job.media_info["thumb"]
|
181
|
+
thumb=job.media_info["thumb"],
|
182
|
+
caption=self.build_signature_caption(job)
|
166
183
|
)
|
167
184
|
else:
|
168
185
|
args["video"] = job.local_media_path
|
@@ -171,18 +188,23 @@ class Bot(object):
|
|
171
188
|
args["height"] = job.media_info["height"]
|
172
189
|
args["duration"] = round(job.media_info["duration"])
|
173
190
|
args["thumb"] = job.media_info["thumb"]
|
191
|
+
args["caption"] = self.build_signature_caption(job)
|
174
192
|
|
175
193
|
args["file_name"] = "downloaded_via_warp_beacon_bot%s" % (os.path.splitext(job.local_media_path)[-1])
|
176
194
|
elif job.media_type == JobType.IMAGE:
|
177
195
|
if job.tg_file_id:
|
178
196
|
if job.placeholder_message_id:
|
179
|
-
args["media"] = InputMediaPhoto(
|
197
|
+
args["media"] = InputMediaPhoto(
|
198
|
+
media=job.tg_file_id.replace(":image", ''),
|
199
|
+
caption=self.build_signature_caption(job)
|
200
|
+
)
|
180
201
|
else:
|
181
202
|
args["photo"] = job.tg_file_id.replace(":image", '')
|
182
203
|
else:
|
183
204
|
if job.placeholder_message_id:
|
184
205
|
args["media"] = InputMediaPhoto(
|
185
|
-
media=job.local_media_path
|
206
|
+
media=job.local_media_path,
|
207
|
+
caption=self.build_signature_caption(job)
|
186
208
|
)
|
187
209
|
else:
|
188
210
|
args["photo"] = job.local_media_path
|
@@ -190,7 +212,8 @@ class Bot(object):
|
|
190
212
|
if job.tg_file_id:
|
191
213
|
if job.placeholder_message_id:
|
192
214
|
args["media"] = InputMediaAudio(
|
193
|
-
media=job.tg_file_id.replace(":audio", '')
|
215
|
+
media=job.tg_file_id.replace(":audio", ''),
|
216
|
+
caption=self.build_signature_caption(job)
|
194
217
|
)
|
195
218
|
else:
|
196
219
|
args["audio"] = job.tg_file_id.replace(":audio", '')
|
@@ -202,6 +225,7 @@ class Bot(object):
|
|
202
225
|
thumb=job.media_info["thumb"],
|
203
226
|
duration=round(job.media_info["duration"]),
|
204
227
|
title=job.canonical_name,
|
228
|
+
caption=self.build_signature_caption(job)
|
205
229
|
)
|
206
230
|
else:
|
207
231
|
args["audio"] = job.local_media_path
|
@@ -209,6 +233,7 @@ class Bot(object):
|
|
209
233
|
args["thumb"] = job.media_info["thumb"]
|
210
234
|
args["duration"] = round(job.media_info["duration"])
|
211
235
|
args["title"] = job.canonical_name
|
236
|
+
args["caption"] = self.build_signature_caption(job)
|
212
237
|
#args["file_name"] = "%s%s" % (job.canonical_name, os.path.splitext(job.local_media_path)[-1]),
|
213
238
|
elif job.media_type == JobType.ANIMATION:
|
214
239
|
if job.tg_file_id:
|
@@ -225,7 +250,8 @@ class Bot(object):
|
|
225
250
|
thumb=job.media_info["thumb"],
|
226
251
|
duration=round(job.media_info["duration"]),
|
227
252
|
width=job.media_info["width"],
|
228
|
-
height=job.media_info["height"]
|
253
|
+
height=job.media_info["height"],
|
254
|
+
caption=self.build_signature_caption(job)
|
229
255
|
)
|
230
256
|
else:
|
231
257
|
args["animation"] = job.local_media_path
|
@@ -233,6 +259,7 @@ class Bot(object):
|
|
233
259
|
args["height"] = job.media_info["height"]
|
234
260
|
args["duration"] = round(job.media_info["duration"])
|
235
261
|
args["thumb"] = job.media_info["thumb"]
|
262
|
+
args["caption"] = self.build_signature_caption(job)
|
236
263
|
elif job.media_type == JobType.COLLECTION:
|
237
264
|
if job.tg_file_id:
|
238
265
|
args["media"] = []
|
@@ -243,11 +270,11 @@ class Bot(object):
|
|
243
270
|
ctype = JobType[mtype.upper()]
|
244
271
|
ptr = None
|
245
272
|
if ctype == JobType.VIDEO:
|
246
|
-
ptr = InputMediaVideo(media=tg_id)
|
273
|
+
ptr = InputMediaVideo(media=tg_id, caption=self.build_signature_caption(job))
|
247
274
|
elif ctype == JobType.IMAGE:
|
248
|
-
ptr = InputMediaPhoto(media=tg_id)
|
275
|
+
ptr = InputMediaPhoto(media=tg_id, caption=self.build_signature_caption(job))
|
249
276
|
elif ctype == JobType.ANIMATION:
|
250
|
-
ptr = InputMediaAnimation(media=tg_id)
|
277
|
+
ptr = InputMediaAnimation(media=tg_id, caption=self.build_signature_caption(job))
|
251
278
|
tg_chunk.append(ptr)
|
252
279
|
|
253
280
|
args["media"].append(tg_chunk)
|
@@ -264,11 +291,13 @@ class Bot(object):
|
|
264
291
|
height=j.media_info["height"],
|
265
292
|
duration=round(j.media_info["duration"]),
|
266
293
|
thumb=j.media_info["thumb"],
|
294
|
+
caption=self.build_signature_caption(job)
|
267
295
|
)
|
268
296
|
tg_chunk.append(vid)
|
269
297
|
elif j.media_type == JobType.IMAGE:
|
270
298
|
photo = InputMediaPhoto(
|
271
|
-
media=j.local_media_path
|
299
|
+
media=j.local_media_path,
|
300
|
+
caption=self.build_signature_caption(job)
|
272
301
|
)
|
273
302
|
tg_chunk.append(photo)
|
274
303
|
mediafs.append(tg_chunk)
|
@@ -276,15 +305,6 @@ class Bot(object):
|
|
276
305
|
|
277
306
|
args["chat_id"] = job.chat_id
|
278
307
|
|
279
|
-
if job.chat_type in (ChatType.GROUP, ChatType.SUPERGROUP):
|
280
|
-
args["caption"] = ""
|
281
|
-
if job.source_usename:
|
282
|
-
args["caption"] += f"Requested by **@{job.source_usename}**"
|
283
|
-
if job.source_usename and job.url:
|
284
|
-
args["caption"] += " | "
|
285
|
-
if job.url:
|
286
|
-
args["caption"] += f"[Source link]({job.url})"
|
287
|
-
|
288
308
|
# common args
|
289
309
|
if job.placeholder_message_id and job.media_type is not JobType.COLLECTION:
|
290
310
|
args["message_id"] = job.placeholder_message_id
|
@@ -343,7 +363,7 @@ class Bot(object):
|
|
343
363
|
messages = await self.client.send_media_group(
|
344
364
|
chat_id=job.chat_id,
|
345
365
|
reply_to_message_id=job.message_id,
|
346
|
-
media=media_chunk
|
366
|
+
media=media_chunk
|
347
367
|
)
|
348
368
|
sent_messages += messages
|
349
369
|
if job.media_collection:
|
@@ -390,7 +410,7 @@ class Bot(object):
|
|
390
410
|
|
391
411
|
if job.chat_type in (ChatType.GROUP, ChatType.SUPERGROUP):
|
392
412
|
try:
|
393
|
-
self.client.delete_messages(job.chat_id, (job.message_id,))
|
413
|
+
await self.client.delete_messages(job.chat_id, (job.message_id,))
|
394
414
|
except Exception as e:
|
395
415
|
logging.warning("Failed to delete source message. Check bot permissions in Telegram chat settings.")
|
396
416
|
logging.exception(e)
|
@@ -3,7 +3,7 @@ lib/systemd/system/warp_beacon.service,sha256=lPmHqLqcI2eIV7nwHS0qcALQrznixqJuww
|
|
3
3
|
var/warp_beacon/accounts.json,sha256=rKFQM_b9eoDS4mJ1B_SZNolPLXx1SQdQMdY2F_ZcBt8,1523
|
4
4
|
var/warp_beacon/placeholder.gif,sha256=cE5CGJVaop4Sx21zx6j4AyoHU0ncmvQuS2o6hJfEH88,6064
|
5
5
|
warp_beacon/__init__.py,sha256=_rThNODmz0nDp_n4mWo_HKaNFE5jk1_7cRhHyYaencI,163
|
6
|
-
warp_beacon/__version__.py,sha256=
|
6
|
+
warp_beacon/__version__.py,sha256=fvnVLCMKtvzONpqcFCrZo4HrUEtArCwJghjH2toLovk,24
|
7
7
|
warp_beacon/warp_beacon.py,sha256=7KEtZDj-pdhtl6m-zFLsSojs1ZR4o7L0xbqtdmYPvfE,342
|
8
8
|
warp_beacon/compress/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
9
9
|
warp_beacon/compress/video.py,sha256=_PDMVYCyzLYxHv1uZmmzGcG_8rjaZr7BTXsXTTy_oS4,2846
|
@@ -32,14 +32,14 @@ warp_beacon/scraper/youtube/shorts.py,sha256=pHfvEBau8Zp7Ar3LBuPmjqYq8fmjJUQvzeZ
|
|
32
32
|
warp_beacon/scraper/youtube/youtube.py,sha256=K98n2TSJaDZt-xT7mADZL1UEf2exIYm0Wnenn2GAYfI,2250
|
33
33
|
warp_beacon/storage/__init__.py,sha256=8XsJXq9X7GDlTaWREF4W1PDX9PH5utwhjf5c5M8Bb7o,3378
|
34
34
|
warp_beacon/telegram/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
35
|
-
warp_beacon/telegram/bot.py,sha256=
|
35
|
+
warp_beacon/telegram/bot.py,sha256=QTLNeOTMHOMs2W7mAY_ygVzxJu7N-IMBrBvPDHMLCCI,14789
|
36
36
|
warp_beacon/telegram/handlers.py,sha256=8MeLgnhaucLc7ptsKV3NXecsGN7kItwrU5xIoJ1Eik8,6645
|
37
37
|
warp_beacon/telegram/placeholder_message.py,sha256=u5kVfTjGmVYkwA5opniRltHXGpsdSxI41WEde8J5os0,6418
|
38
38
|
warp_beacon/telegram/utils.py,sha256=LdCU4ChJHyzpCvyG5v3XcUtUgK3v5by_v8D56VsPeI0,2171
|
39
39
|
warp_beacon/uploader/__init__.py,sha256=BQ5rli0soLf0FGqCpivVh9w6lyoGM10-ck2mUjnoOLU,4777
|
40
|
-
warp_beacon-2.1.
|
41
|
-
warp_beacon-2.1.
|
42
|
-
warp_beacon-2.1.
|
43
|
-
warp_beacon-2.1.
|
44
|
-
warp_beacon-2.1.
|
45
|
-
warp_beacon-2.1.
|
40
|
+
warp_beacon-2.1.12.dist-info/LICENSE,sha256=xx0jnfkXJvxRnG63LTGOxlggYnIysveWIZ6H3PNdCrQ,11357
|
41
|
+
warp_beacon-2.1.12.dist-info/METADATA,sha256=QoScSZBGQfB8owQeFNd2Q0XDlcOecc9Kzt-3-Ur34J8,21251
|
42
|
+
warp_beacon-2.1.12.dist-info/WHEEL,sha256=GV9aMThwP_4oNCtvEC2ec3qUYutgWeAzklro_0m4WJQ,91
|
43
|
+
warp_beacon-2.1.12.dist-info/entry_points.txt,sha256=eSB61Rb89d56WY0O-vEIQwkn18J-4CMrJcLA_R_8h3g,119
|
44
|
+
warp_beacon-2.1.12.dist-info/top_level.txt,sha256=ALb_Ft_eG-OY4_m0TWUifNUOZsrx483L-zw7G7vqXoc,971
|
45
|
+
warp_beacon-2.1.12.dist-info/RECORD,,
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|