From b6cdf7621928b3a76e9e7b825b76dfc566388656 Mon Sep 17 00:00:00 2001 From: Taras Terletsky <888784+tropicoo@users.noreply.github.com> Date: Thu, 9 May 2024 00:06:47 +0300 Subject: [PATCH] Fix rare yt-dlp glitch --- .dockerignore | 2 ++ .gitignore | 2 ++ app_bot/bot/core/tasks/upload.py | 4 ++-- app_worker/worker/core/downloader.py | 8 +++++++- 4 files changed, 13 insertions(+), 3 deletions(-) diff --git a/.dockerignore b/.dockerignore index bbc9af0..6492f6a 100644 --- a/.dockerignore +++ b/.dockerignore @@ -14,3 +14,5 @@ LICENSE README.md pyproject.toml +rsync_exclude.txt +rsync.sh diff --git a/.gitignore b/.gitignore index e990e29..e136d4b 100644 --- a/.gitignore +++ b/.gitignore @@ -1,5 +1,7 @@ # Byte-compiled / optimized / DLL files +rsync.sh +rsync_exclude.txt *tmp* *.session *.session-journal diff --git a/app_bot/bot/core/tasks/upload.py b/app_bot/bot/core/tasks/upload.py index e6c9d76..cdda5ce 100644 --- a/app_bot/bot/core/tasks/upload.py +++ b/app_bot/bot/core/tasks/upload.py @@ -210,7 +210,7 @@ class AudioUploadTask(AbstractUploadTask): ) def _cache_data(self, message: Message) -> None: - self._log.info('Saving telegram file cache') + self._log.info('Saving Telegram file cache') audio = message.audio if not audio: err_msg = 'Telegram message response does not contain audio' @@ -291,7 +291,7 @@ class VideoUploadTask(AbstractUploadTask): return self._bot.send_video(**kwargs) def _cache_data(self, message: Message) -> None: - self._log.info('Saving telegram file cache') + self._log.info('Saving Telegram file cache') video = message.video or message.animation if not video: err_msg = 'Telegram message response does not contain video or animation' diff --git a/app_worker/worker/core/downloader.py b/app_worker/worker/core/downloader.py index 3c447f3..8613218 100644 --- a/app_worker/worker/core/downloader.py +++ b/app_worker/worker/core/downloader.py @@ -247,6 +247,10 @@ class MediaDownloader: def _get_requested_video(self, requested_downloads: list[dict]) -> dict | None: for download_obj in requested_downloads: if download_obj['ext'] != FINAL_AUDIO_FORMAT: + # Attempt to handle yt-dlp glitch. + download_obj['filepath'] = download_obj.get( + 'filepath', download_obj.get('filename', download_obj['_filename']) + ) return download_obj # When video was converted to audio but video kept. @@ -258,7 +262,9 @@ class MediaDownloader: download_obj['filepath'], download_obj['_filename'], ) - download_obj['filepath'] = download_obj['_filename'] + download_obj['filepath'] = download_obj.get( + 'filename', download_obj['_filename'] + ) return download_obj return None