warp-beacon 2.2.5__tar.gz → 2.2.7__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.2.5/warp_beacon.egg-info → warp_beacon-2.2.7}/PKG-INFO +1 -1
- warp_beacon-2.2.7/warp_beacon/__version__.py +2 -0
- {warp_beacon-2.2.5 → warp_beacon-2.2.7}/warp_beacon/mediainfo/video.py +1 -1
- {warp_beacon-2.2.5 → warp_beacon-2.2.7}/warp_beacon/scraper/__init__.py +3 -1
- {warp_beacon-2.2.5 → warp_beacon-2.2.7}/warp_beacon/scraper/youtube/abstract.py +1 -1
- {warp_beacon-2.2.5 → warp_beacon-2.2.7}/warp_beacon/telegram/bot.py +1 -1
- {warp_beacon-2.2.5 → warp_beacon-2.2.7}/warp_beacon/telegram/utils.py +4 -1
- {warp_beacon-2.2.5 → warp_beacon-2.2.7/warp_beacon.egg-info}/PKG-INFO +1 -1
- warp_beacon-2.2.5/warp_beacon/__version__.py +0 -2
- {warp_beacon-2.2.5 → warp_beacon-2.2.7}/LICENSE +0 -0
- {warp_beacon-2.2.5 → warp_beacon-2.2.7}/MANIFEST.in +0 -0
- {warp_beacon-2.2.5 → warp_beacon-2.2.7}/README.md +0 -0
- {warp_beacon-2.2.5 → warp_beacon-2.2.7}/assets/placeholder.gif +0 -0
- {warp_beacon-2.2.5 → warp_beacon-2.2.7}/etc/.gitignore +0 -0
- {warp_beacon-2.2.5 → warp_beacon-2.2.7}/etc/accounts.json +0 -0
- {warp_beacon-2.2.5 → warp_beacon-2.2.7}/etc/warp_beacon.conf +0 -0
- {warp_beacon-2.2.5 → warp_beacon-2.2.7}/etc/warp_beacon.service +0 -0
- {warp_beacon-2.2.5 → warp_beacon-2.2.7}/pyproject.toml +0 -0
- {warp_beacon-2.2.5 → warp_beacon-2.2.7}/setup.cfg +0 -0
- {warp_beacon-2.2.5 → warp_beacon-2.2.7}/setup.py +0 -0
- {warp_beacon-2.2.5 → warp_beacon-2.2.7}/warp_beacon/__init__.py +0 -0
- {warp_beacon-2.2.5 → warp_beacon-2.2.7}/warp_beacon/compress/__init__.py +0 -0
- {warp_beacon-2.2.5 → warp_beacon-2.2.7}/warp_beacon/compress/video.py +0 -0
- {warp_beacon-2.2.5 → warp_beacon-2.2.7}/warp_beacon/jobs/__init__.py +0 -0
- {warp_beacon-2.2.5 → warp_beacon-2.2.7}/warp_beacon/jobs/abstract.py +0 -0
- {warp_beacon-2.2.5 → warp_beacon-2.2.7}/warp_beacon/jobs/download_job.py +0 -0
- {warp_beacon-2.2.5 → warp_beacon-2.2.7}/warp_beacon/jobs/types.py +0 -0
- {warp_beacon-2.2.5 → warp_beacon-2.2.7}/warp_beacon/jobs/upload_job.py +0 -0
- {warp_beacon-2.2.5 → warp_beacon-2.2.7}/warp_beacon/mediainfo/__init__.py +0 -0
- {warp_beacon-2.2.5 → warp_beacon-2.2.7}/warp_beacon/mediainfo/abstract.py +0 -0
- {warp_beacon-2.2.5 → warp_beacon-2.2.7}/warp_beacon/mediainfo/audio.py +0 -0
- {warp_beacon-2.2.5 → warp_beacon-2.2.7}/warp_beacon/mediainfo/silencer.py +0 -0
- {warp_beacon-2.2.5 → warp_beacon-2.2.7}/warp_beacon/scheduler/__init__.py +0 -0
- {warp_beacon-2.2.5 → warp_beacon-2.2.7}/warp_beacon/scheduler/scheduler.py +0 -0
- {warp_beacon-2.2.5 → warp_beacon-2.2.7}/warp_beacon/scraper/abstract.py +0 -0
- {warp_beacon-2.2.5 → warp_beacon-2.2.7}/warp_beacon/scraper/account_selector.py +0 -0
- {warp_beacon-2.2.5 → warp_beacon-2.2.7}/warp_beacon/scraper/exceptions.py +0 -0
- {warp_beacon-2.2.5 → warp_beacon-2.2.7}/warp_beacon/scraper/instagram/__init__.py +0 -0
- {warp_beacon-2.2.5 → warp_beacon-2.2.7}/warp_beacon/scraper/instagram/instagram.py +0 -0
- {warp_beacon-2.2.5 → warp_beacon-2.2.7}/warp_beacon/scraper/youtube/__init__.py +0 -0
- {warp_beacon-2.2.5 → warp_beacon-2.2.7}/warp_beacon/scraper/youtube/music.py +0 -0
- {warp_beacon-2.2.5 → warp_beacon-2.2.7}/warp_beacon/scraper/youtube/shorts.py +0 -0
- {warp_beacon-2.2.5 → warp_beacon-2.2.7}/warp_beacon/scraper/youtube/youtube.py +0 -0
- {warp_beacon-2.2.5 → warp_beacon-2.2.7}/warp_beacon/storage/__init__.py +0 -0
- {warp_beacon-2.2.5 → warp_beacon-2.2.7}/warp_beacon/telegram/__init__.py +0 -0
- {warp_beacon-2.2.5 → warp_beacon-2.2.7}/warp_beacon/telegram/handlers.py +0 -0
- {warp_beacon-2.2.5 → warp_beacon-2.2.7}/warp_beacon/telegram/placeholder_message.py +0 -0
- {warp_beacon-2.2.5 → warp_beacon-2.2.7}/warp_beacon/uploader/__init__.py +0 -0
- {warp_beacon-2.2.5 → warp_beacon-2.2.7}/warp_beacon/warp_beacon.py +0 -0
- {warp_beacon-2.2.5 → warp_beacon-2.2.7}/warp_beacon.egg-info/SOURCES.txt +0 -0
- {warp_beacon-2.2.5 → warp_beacon-2.2.7}/warp_beacon.egg-info/dependency_links.txt +0 -0
- {warp_beacon-2.2.5 → warp_beacon-2.2.7}/warp_beacon.egg-info/entry_points.txt +0 -0
- {warp_beacon-2.2.5 → warp_beacon-2.2.7}/warp_beacon.egg-info/requires.txt +0 -0
- {warp_beacon-2.2.5 → warp_beacon-2.2.7}/warp_beacon.egg-info/top_level.txt +0 -0
@@ -48,7 +48,7 @@ class VideoInfo(MediaInfoAbstract):
|
|
48
48
|
# Signal that we only want to look at keyframes.
|
49
49
|
stream = self.container.streams.video[0]
|
50
50
|
stream.codec_context.skip_frame = "NONKEY"
|
51
|
-
frame_num =
|
51
|
+
frame_num = 120
|
52
52
|
time_base = stream.time_base
|
53
53
|
framerate = stream.average_rate
|
54
54
|
frame_container_pts = round((frame_num / framerate) / time_base)
|
@@ -248,7 +248,9 @@ class AsyncDownloader(object):
|
|
248
248
|
for item in items:
|
249
249
|
media_info = {"filesize": 0}
|
250
250
|
if item["media_type"] == JobType.VIDEO:
|
251
|
-
|
251
|
+
media_info_tmp = item.get("media_info", {})
|
252
|
+
media_info_tmp["thumb"] = item.get("thumb", None)
|
253
|
+
media_info = self.get_media_info(item["local_media_path"], media_info_tmp, JobType.VIDEO)
|
252
254
|
logging.info("Final media info: %s", media_info)
|
253
255
|
if media_info["filesize"] > 2e+9:
|
254
256
|
logging.info("Filesize is '%d' MiB", round(media_info["filesize"] / 1024 / 1024))
|
@@ -109,7 +109,7 @@ class YoutubeAbstract(ScraperAbstract):
|
|
109
109
|
image = Image.open(io.BytesIO(f.read()))
|
110
110
|
image = MediaInfoAbstract.shrink_image_to_fit(image)
|
111
111
|
io_buf = io.BytesIO()
|
112
|
-
image.save(io_buf, format='JPEG')
|
112
|
+
image.save(io_buf, format='JPEG', subsampling=0, quality=100)
|
113
113
|
io_buf.seek(0)
|
114
114
|
return io_buf
|
115
115
|
except Exception as e:
|
@@ -315,7 +315,7 @@ class Bot(object):
|
|
315
315
|
args["message_id"] = job.placeholder_message_id
|
316
316
|
else:
|
317
317
|
args["disable_notification"] = True
|
318
|
-
args["reply_to_message_id"] = job.message_id
|
318
|
+
#args["reply_to_message_id"] = job.message_id
|
319
319
|
|
320
320
|
if os.environ.get("ENABLE_DONATES", None) == "true" and job.media_type is not JobType.COLLECTION:
|
321
321
|
args["reply_markup"] = InlineKeyboardMarkup([[InlineKeyboardButton("❤ Donate", url=os.environ.get("DONATE_LINK", "https://pay.cryptocloud.plus/pos/W5BMtNQt5bJFoW2E"))]])
|
@@ -84,7 +84,10 @@ class Utils(object):
|
|
84
84
|
@staticmethod
|
85
85
|
def extract_message_author(message: Message) -> str:
|
86
86
|
if message.from_user:
|
87
|
-
|
87
|
+
if message.from_user.username:
|
88
|
+
return message.from_user.username
|
89
|
+
if message.from_user.id:
|
90
|
+
return str(message.from_user.id)
|
88
91
|
if message.sender_chat:
|
89
92
|
if message.sender_chat.username:
|
90
93
|
return message.sender_chat.username
|
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
|