warp-beacon 2.0.0__py3-none-any.whl → 2.0.2__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/jobs/upload_job.py +1 -0
- warp_beacon/scraper/__init__.py +1 -1
- warp_beacon/telegram/bot.py +61 -31
- warp_beacon/telegram/handlers.py +8 -1
- warp_beacon/telegram/placeholder_message.py +2 -1
- {warp_beacon-2.0.0.dist-info → warp_beacon-2.0.2.dist-info}/METADATA +1 -1
- {warp_beacon-2.0.0.dist-info → warp_beacon-2.0.2.dist-info}/RECORD +12 -12
- {warp_beacon-2.0.0.dist-info → warp_beacon-2.0.2.dist-info}/LICENSE +0 -0
- {warp_beacon-2.0.0.dist-info → warp_beacon-2.0.2.dist-info}/WHEEL +0 -0
- {warp_beacon-2.0.0.dist-info → warp_beacon-2.0.2.dist-info}/entry_points.txt +0 -0
- {warp_beacon-2.0.0.dist-info → warp_beacon-2.0.2.dist-info}/top_level.txt +0 -0
warp_beacon/__version__.py
CHANGED
@@ -1,2 +1,2 @@
|
|
1
|
-
__version__ = "2.0.
|
1
|
+
__version__ = "2.0.2"
|
2
2
|
|
warp_beacon/jobs/upload_job.py
CHANGED
warp_beacon/scraper/__init__.py
CHANGED
@@ -146,7 +146,7 @@ class AsyncDownloader(object):
|
|
146
146
|
logging.info("Detected big file. Starting compressing with ffmpeg ...")
|
147
147
|
self.uploader.queue_task(job.to_upload_job(
|
148
148
|
job_warning=True,
|
149
|
-
job_warning_msg="Downloaded file size is bigger than Telegram limits
|
149
|
+
job_warning_msg="Downloaded file size is bigger than Telegram limits! Performing video compression. This may take a while.")
|
150
150
|
)
|
151
151
|
ffmpeg = VideoCompress(file_path=item["local_media_path"])
|
152
152
|
new_filepath = ffmpeg.generate_filepath(base_filepath=item["local_media_path"])
|
warp_beacon/telegram/bot.py
CHANGED
@@ -8,7 +8,7 @@ from pyrogram import Client, filters
|
|
8
8
|
from pyrogram.enums import ParseMode
|
9
9
|
from pyrogram.handlers import MessageHandler
|
10
10
|
from pyrogram.types import Message, InputMedia, InputMediaAudio, InputMediaPhoto, InputMediaVideo, InputMediaAnimation, InputMediaDocument, InlineKeyboardButton, InlineKeyboardMarkup
|
11
|
-
from pyrogram.errors import RPCError, FloodWait, NetworkMigrate, BadRequest, MultiMediaTooLong
|
11
|
+
from pyrogram.errors import RPCError, FloodWait, NetworkMigrate, BadRequest, MultiMediaTooLong, MessageIdInvalid
|
12
12
|
|
13
13
|
from warp_beacon.__version__ import __version__
|
14
14
|
from warp_beacon.telegram.handlers import Handlers
|
@@ -123,14 +123,23 @@ class Bot(object):
|
|
123
123
|
else:
|
124
124
|
args["video"] = job.tg_file_id.replace(":video", '')
|
125
125
|
else:
|
126
|
-
|
127
|
-
media=
|
128
|
-
|
129
|
-
|
130
|
-
|
131
|
-
|
132
|
-
|
133
|
-
|
126
|
+
if job.placeholder_message_id:
|
127
|
+
args["media"] = InputMediaVideo(
|
128
|
+
media=job.local_media_path,
|
129
|
+
supports_streaming=True,
|
130
|
+
width=job.media_info["width"],
|
131
|
+
height=job.media_info["height"],
|
132
|
+
duration=job.media_info["duration"],
|
133
|
+
thumb=job.media_info["thumb"]
|
134
|
+
)
|
135
|
+
else:
|
136
|
+
args["video"] = job.local_media_path
|
137
|
+
args["supports_streaming"] = True
|
138
|
+
args["width"] = job.media_info["width"]
|
139
|
+
args["height"] = job.media_info["height"]
|
140
|
+
args["duration"] = job.media_info["duration"]
|
141
|
+
args["thumb"] = job.media_info["thumb"]
|
142
|
+
|
134
143
|
args["file_name"] = "downloaded_via_warp_beacon_bot%s" % (os.path.splitext(job.local_media_path)[-1])
|
135
144
|
elif job.media_type == JobType.IMAGE:
|
136
145
|
if job.tg_file_id:
|
@@ -139,9 +148,12 @@ class Bot(object):
|
|
139
148
|
else:
|
140
149
|
args["photo"] = job.tg_file_id.replace(":image", '')
|
141
150
|
else:
|
142
|
-
|
143
|
-
media=
|
144
|
-
|
151
|
+
if job.placeholder_message_id:
|
152
|
+
args["media"] = InputMediaPhoto(
|
153
|
+
media=job.local_media_path
|
154
|
+
)
|
155
|
+
else:
|
156
|
+
args["photo"] = job.local_media_path
|
145
157
|
elif job.media_type == JobType.AUDIO:
|
146
158
|
if job.tg_file_id:
|
147
159
|
if job.placeholder_message_id:
|
@@ -151,13 +163,20 @@ class Bot(object):
|
|
151
163
|
else:
|
152
164
|
args["audio"] = job.tg_file_id.replace(":audio", '')
|
153
165
|
else:
|
154
|
-
|
155
|
-
media=
|
156
|
-
|
157
|
-
|
158
|
-
|
159
|
-
|
160
|
-
|
166
|
+
if job.placeholder_message_id:
|
167
|
+
args["media"] = InputMediaAudio(
|
168
|
+
media=job.local_media_path,
|
169
|
+
performer=job.media_info["performer"],
|
170
|
+
thumb=job.media_info["thumb"],
|
171
|
+
duration=job.media_info["duration"],
|
172
|
+
title=job.canonical_name,
|
173
|
+
)
|
174
|
+
else:
|
175
|
+
args["audio"] = job.local_media_path
|
176
|
+
args["performer"] = job.media_info["performer"]
|
177
|
+
args["thumb"] = job.media_info["thumb"]
|
178
|
+
args["duration"] = job.media_info["duration"]
|
179
|
+
args["title"] = job.canonical_name
|
161
180
|
#args["file_name"] = "%s%s" % (job.canonical_name, os.path.splitext(job.local_media_path)[-1]),
|
162
181
|
elif job.media_type == JobType.ANIMATION:
|
163
182
|
if job.tg_file_id:
|
@@ -168,13 +187,20 @@ class Bot(object):
|
|
168
187
|
else:
|
169
188
|
args["animation"] = job.tg_file_id.replace(":animation", '')
|
170
189
|
else:
|
171
|
-
|
172
|
-
media=
|
173
|
-
|
174
|
-
|
175
|
-
|
176
|
-
|
177
|
-
|
190
|
+
if job.placeholder_message_id:
|
191
|
+
args["media"] = InputMediaAnimation(
|
192
|
+
media=job.local_media_path,
|
193
|
+
thumb=job.media_info["thumb"],
|
194
|
+
duration=job.media_info["duration"],
|
195
|
+
width=job.media_info["width"],
|
196
|
+
height=job.media_info["height"]
|
197
|
+
)
|
198
|
+
else:
|
199
|
+
args["animation"] = job.local_media_path
|
200
|
+
args["width"] = job.media_info["width"]
|
201
|
+
args["height"] = job.media_info["height"]
|
202
|
+
args["duration"] = job.media_info["duration"]
|
203
|
+
args["thumb"] = job.media_info["thumb"]
|
178
204
|
elif job.media_type == JobType.COLLECTION:
|
179
205
|
if job.tg_file_id:
|
180
206
|
args["media"] = []
|
@@ -219,19 +245,18 @@ class Bot(object):
|
|
219
245
|
args["chat_id"] = job.chat_id
|
220
246
|
|
221
247
|
# common args
|
222
|
-
if job.placeholder_message_id and job.media_type
|
248
|
+
if job.placeholder_message_id and job.media_type is not JobType.COLLECTION:
|
223
249
|
args["message_id"] = job.placeholder_message_id
|
224
250
|
else:
|
225
251
|
args["disable_notification"] = True
|
226
252
|
args["reply_to_message_id"] = job.message_id
|
227
253
|
|
228
|
-
if os.environ.get("ENABLE_DONATES", None) == "true" and job.media_type
|
254
|
+
if os.environ.get("ENABLE_DONATES", None) == "true" and job.media_type is not JobType.COLLECTION:
|
229
255
|
args["reply_markup"] = InlineKeyboardMarkup([[InlineKeyboardButton("❤ Donate", url=os.environ.get("DONATE_LINK", "https://pay.cryptocloud.plus/pos/W5BMtNQt5bJFoW2E"))]])
|
230
256
|
|
231
257
|
return args
|
232
258
|
|
233
259
|
async def upload_job(self, job: UploadJob) -> list[str]:
|
234
|
-
timeout = int(os.environ.get("TG_WRITE_TIMEOUT", default=120))
|
235
260
|
tg_file_ids = []
|
236
261
|
try:
|
237
262
|
retry_amount = 0
|
@@ -241,7 +266,12 @@ class Bot(object):
|
|
241
266
|
reply_message = None
|
242
267
|
if job.media_type in (JobType.VIDEO, JobType.IMAGE, JobType.AUDIO):
|
243
268
|
if job.placeholder_message_id:
|
244
|
-
|
269
|
+
try:
|
270
|
+
reply_message = await self.client.edit_message_media(**self.build_tg_args(job))
|
271
|
+
except MessageIdInvalid:
|
272
|
+
logging.warning("Placeholder message not found. Looks like placeholder message was deleted by administrator.")
|
273
|
+
job.placeholder_message_id = None
|
274
|
+
continue
|
245
275
|
else:
|
246
276
|
send_funcs = {
|
247
277
|
JobType.VIDEO: self.client.send_video,
|
@@ -277,7 +307,7 @@ class Bot(object):
|
|
277
307
|
sent_messages += messages
|
278
308
|
if job.media_collection:
|
279
309
|
for j, chunk in enumerate(media_chunk):
|
280
|
-
tg_file_id = Utils.
|
310
|
+
tg_file_id = Utils.eƒƒxtract_file_id(messages[j])
|
281
311
|
if tg_file_id:
|
282
312
|
job.media_collection[i][j].tg_file_id = tg_file_id
|
283
313
|
if i == 0 and job.placeholder_message_id:
|
warp_beacon/telegram/handlers.py
CHANGED
@@ -31,7 +31,14 @@ class Handlers(object):
|
|
31
31
|
if not d:
|
32
32
|
await message.reply_text("No random content yet. Try to send link first.")
|
33
33
|
return
|
34
|
-
await self.bot.upload_job(
|
34
|
+
await self.bot.upload_job(
|
35
|
+
UploadJob(
|
36
|
+
tg_file_id=d["tg_file_id"],
|
37
|
+
chat_id=message.chat.id,
|
38
|
+
media_type=JobType[d["media_type"].upper()],
|
39
|
+
message_id=message.id
|
40
|
+
)
|
41
|
+
)
|
35
42
|
|
36
43
|
async def start(self, client: Client, message: Message) -> None:
|
37
44
|
bot_name = await self.bot.client.get_me()
|
@@ -177,7 +177,8 @@ class PlaceholderMessage(object):
|
|
177
177
|
await self.bot.client.edit_message_caption(
|
178
178
|
chat_id=chat_id,
|
179
179
|
message_id=placeholder_message_id,
|
180
|
-
caption=" ⚠️
|
180
|
+
caption=" ⚠️ **%s**" % placeholder_text,
|
181
|
+
parse_mode=ParseMode.MARKDOWN
|
181
182
|
)
|
182
183
|
except Exception as e:
|
183
184
|
logging.error("Failed to update placeholder message!")
|
@@ -2,7 +2,7 @@ etc/warp_beacon/warp_beacon.conf,sha256=xihOuNBqVXGNdmMO14wwYNrqSQ4Z1wlAjp-xJk5S
|
|
2
2
|
lib/systemd/system/warp_beacon.service,sha256=lPmHqLqcI2eIV7nwHS0qcALQrznixqJuwwPfa2mDLUA,372
|
3
3
|
var/warp_beacon/placeholder.gif,sha256=cE5CGJVaop4Sx21zx6j4AyoHU0ncmvQuS2o6hJfEH88,6064
|
4
4
|
warp_beacon/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
5
|
-
warp_beacon/__version__.py,sha256=
|
5
|
+
warp_beacon/__version__.py,sha256=XEXLtIQFYJucVx5iyUIJQDghcXS4pP7zm10F2Q_kYTE,23
|
6
6
|
warp_beacon/warp_beacon.py,sha256=7KEtZDj-pdhtl6m-zFLsSojs1ZR4o7L0xbqtdmYPvfE,342
|
7
7
|
warp_beacon/compress/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
8
8
|
warp_beacon/compress/video.py,sha256=_PDMVYCyzLYxHv1uZmmzGcG_8rjaZr7BTXsXTTy_oS4,2846
|
@@ -10,13 +10,13 @@ warp_beacon/jobs/__init__.py,sha256=ED8_tPle4iL4kqNW0apAVkgNQtRRTnYfAJwBjO1g0JY,
|
|
10
10
|
warp_beacon/jobs/abstract.py,sha256=kvPTxnzf8bYtggJgVZRYV3DVMCpfSia2pFrHLKhn7lY,2358
|
11
11
|
warp_beacon/jobs/download_job.py,sha256=5HiPcnJppFMhO14___3eSkoMygM3y-vhpGkMAuNhK7s,854
|
12
12
|
warp_beacon/jobs/types.py,sha256=Ae8zINgbs7cOcYkYoOCOACA7duyhnIGMQAJ_SJB1QRQ,176
|
13
|
-
warp_beacon/jobs/upload_job.py,sha256=
|
13
|
+
warp_beacon/jobs/upload_job.py,sha256=_ul4psPej1jLEs-BMcMR80GbXDSmm38jE9yoZtecclY,741
|
14
14
|
warp_beacon/mediainfo/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
15
15
|
warp_beacon/mediainfo/abstract.py,sha256=ZR2JMuRpoh7nDNov9a8YkAfr6BI2HXnXzQtVrLgDxjs,1185
|
16
16
|
warp_beacon/mediainfo/audio.py,sha256=ous88kwQj4bDIChN5wnGil5LqTs0IQHH0d-nyrL0-ZM,651
|
17
17
|
warp_beacon/mediainfo/silencer.py,sha256=yn9w1LVHG8JQy_D45_RzrlEWID1zbj3ecx7nYGUP4ZE,1647
|
18
18
|
warp_beacon/mediainfo/video.py,sha256=AIRy_op_BvehsjarM1rvT5Qo0QWwf-Q6xVVd_aCnbJ4,2505
|
19
|
-
warp_beacon/scraper/__init__.py,sha256=
|
19
|
+
warp_beacon/scraper/__init__.py,sha256=Ef24SqcD-dV12coPcSJaQC-fN2oOjH47S1nwsKTrtI4,9860
|
20
20
|
warp_beacon/scraper/abstract.py,sha256=cxQxt5eQkieCZsgQwz425iF69pgCrWZ69ItlikPsWHc,1036
|
21
21
|
warp_beacon/scraper/exceptions.py,sha256=9VJBK5ufokyUpT_q7XVFBYC8lK_BSBfo-S1pd6re9VY,1094
|
22
22
|
warp_beacon/scraper/instagram.py,sha256=YDFdrSB1ghw9f43004lFyk2S5QTopFvpyoUYN-qOVdw,8335
|
@@ -27,14 +27,14 @@ warp_beacon/scraper/youtube/shorts.py,sha256=co4lpNTnncIEScVB9htAT2Hy4fvx56z5xgD
|
|
27
27
|
warp_beacon/scraper/youtube/youtube.py,sha256=xIrGe2ElPo3889_w5128xCnkdgwG1u6lA-QoachMUfc,1104
|
28
28
|
warp_beacon/storage/__init__.py,sha256=8XsJXq9X7GDlTaWREF4W1PDX9PH5utwhjf5c5M8Bb7o,3378
|
29
29
|
warp_beacon/telegram/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
30
|
-
warp_beacon/telegram/bot.py,sha256=
|
31
|
-
warp_beacon/telegram/handlers.py,sha256=
|
32
|
-
warp_beacon/telegram/placeholder_message.py,sha256=
|
30
|
+
warp_beacon/telegram/bot.py,sha256=PVTXud908Q0f8q33ter6l372Z2EKGeOvk8BbQ9WIcYY,12066
|
31
|
+
warp_beacon/telegram/handlers.py,sha256=U6wZdIvZnIugxy98JhgZV51Px_F0NcOXWBH5brGM0Sc,5778
|
32
|
+
warp_beacon/telegram/placeholder_message.py,sha256=u5kVfTjGmVYkwA5opniRltHXGpsdSxI41WEde8J5os0,6418
|
33
33
|
warp_beacon/telegram/utils.py,sha256=3MNlRoYvdoiYU7uBWu4x10QynSW_rE6Ei4GDyZxwVFs,1793
|
34
34
|
warp_beacon/uploader/__init__.py,sha256=chX9oOrwO05O7DFmUfskTAnoKse66r3sY2s4NFF7bmM,4442
|
35
|
-
warp_beacon-2.0.
|
36
|
-
warp_beacon-2.0.
|
37
|
-
warp_beacon-2.0.
|
38
|
-
warp_beacon-2.0.
|
39
|
-
warp_beacon-2.0.
|
40
|
-
warp_beacon-2.0.
|
35
|
+
warp_beacon-2.0.2.dist-info/LICENSE,sha256=xx0jnfkXJvxRnG63LTGOxlggYnIysveWIZ6H3PNdCrQ,11357
|
36
|
+
warp_beacon-2.0.2.dist-info/METADATA,sha256=y84HK_a9c_k3QluWxyEusbvdwhL0dYhnec6ZJuHseG0,18279
|
37
|
+
warp_beacon-2.0.2.dist-info/WHEEL,sha256=R0nc6qTxuoLk7ShA2_Y-UWkN8ZdfDBG2B6Eqpz2WXbs,91
|
38
|
+
warp_beacon-2.0.2.dist-info/entry_points.txt,sha256=eSB61Rb89d56WY0O-vEIQwkn18J-4CMrJcLA_R_8h3g,119
|
39
|
+
warp_beacon-2.0.2.dist-info/top_level.txt,sha256=pu6xG8OO_nCGllnOfAZ6QpVfivtmHVxPlYK8SZzUDqA,840
|
40
|
+
warp_beacon-2.0.2.dist-info/RECORD,,
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|