diff --git a/bot/helper/ext_utils/bot_utils.py b/bot/helper/ext_utils/bot_utils.py index c10d51f..d162725 100644 --- a/bot/helper/ext_utils/bot_utils.py +++ b/bot/helper/ext_utils/bot_utils.py @@ -80,7 +80,7 @@ def getDownloadByGid(gid): def getAllDownload(): with download_dict_lock: - for dlDetails in list(download_dict.values()): + for dlDetails in download_dict.values(): if dlDetails.status() == MirrorStatus.STATUS_DOWNLOADING or dlDetails.status() == MirrorStatus.STATUS_WAITING: if dlDetails: return dlDetails diff --git a/bot/helper/mirror_utils/download_utils/qbit_downloader.py b/bot/helper/mirror_utils/download_utils/qbit_downloader.py index 9316a39..3e723cb 100644 --- a/bot/helper/mirror_utils/download_utils/qbit_downloader.py +++ b/bot/helper/mirror_utils/download_utils/qbit_downloader.py @@ -17,7 +17,7 @@ from telegram.ext import CallbackQueryHandler from bot import download_dict, download_dict_lock, BASE_URL, dispatcher, get_client from bot.helper.mirror_utils.status_utils.qbit_download_status import QbDownloadStatus from bot.helper.telegram_helper.message_utils import * -from bot.helper.ext_utils.bot_utils import setInterval, new_thread, MirrorStatus +from bot.helper.ext_utils.bot_utils import setInterval, new_thread, MirrorStatus, getDownloadByGid from bot.helper.telegram_helper import button_build LOGGER = logging.getLogger(__name__) @@ -147,29 +147,24 @@ def get_confirm(update, context): user_id = query.from_user.id data = query.data data = data.split(" ") - qdl = None - with download_dict_lock: - for dl in download_dict.values(): - if dl.status() == MirrorStatus.STATUS_PAUSE: - if dl.gid() == data[1]: - qdl = dl - break + qdl = getDownloadByGid(data[1]) if qdl is not None: - if user_id != qdl.listen().message.from_user.id: + if user_id != qdl.listener.message.from_user.id: query.answer(text="Don't waste your time!", show_alert=True) return if data[0] == "pin": query.answer(text=data[2], show_alert=True) elif data[0] == "done": query.answer() - qdl.qbclient().torrents_resume(torrent_hashes=data[2]) - sendStatusMessage(qdl.listen().update, qdl.listen().bot) - deleteMessage(context.bot, qdl.mark()) + qdl.client.torrents_resume(torrent_hashes=data[2]) + sendStatusMessage(qdl.listener.update, qdl.listener.bot) + deleteMessage(context.bot, qdl.markup) else: query.answer(text="This task has been cancelled!", show_alert=True) query.delete_message() + def get_hash_magnet(mgt): if mgt.startswith('magnet:'): _, _, _, _, query, _ = urlparse(mgt) diff --git a/bot/helper/mirror_utils/status_utils/qbit_download_status.py b/bot/helper/mirror_utils/status_utils/qbit_download_status.py index f4d3cbb..3335cd3 100644 --- a/bot/helper/mirror_utils/status_utils/qbit_download_status.py +++ b/bot/helper/mirror_utils/status_utils/qbit_download_status.py @@ -13,10 +13,10 @@ class QbDownloadStatus(Status): super().__init__() self.__gid = gid self.__hash = qbhash - self.__client = client + self.client = client self.markup = None self.__uid = listener.uid - self.__listener = listener + self.listener = listener self.message = listener.message @@ -65,11 +65,7 @@ class QbDownloadStatus(Status): return status def torrent_info(self): - tor_info = self.__client.torrents_info(torrent_hashes=self.__hash) - if len(tor_info) == 0: - return None - else: - return tor_info[0] + return self.client.torrents_info(torrent_hashes=self.__hash)[0] def download(self): return self @@ -80,16 +76,7 @@ class QbDownloadStatus(Status): def gid(self): return self.__gid - def listen(self): - return self.__listener - - def qbclient(self): - return self.__client - - def mark(self): - return self.markup - def cancel_download(self): LOGGER.info(f"Cancelling Download: {self.name()}") - self.__listener.onDownloadError('Download stopped by user!') - self.__client.torrents_delete(torrent_hashes=self.__hash) + self.listener.onDownloadError('Download stopped by user!') + self.client.torrents_delete(torrent_hashes=self.__hash) diff --git a/bot/modules/mirror.py b/bot/modules/mirror.py index 0265a3d..5061043 100644 --- a/bot/modules/mirror.py +++ b/bot/modules/mirror.py @@ -103,7 +103,7 @@ class MirrorListener(listeners.MirrorListeners): path = f'{DOWNLOAD_DIR}{self.uid}/{name}' up_name = pathlib.PurePath(path).name up_path = f'{DOWNLOAD_DIR}{self.uid}/{up_name}' - LOGGER.info(f"Upload Name: {name}") + LOGGER.info(f"Upload Name: {up_name}") drive = gdriveTools.GoogleDriveHelper(up_name, self) size = fs_utils.get_path_size(up_path) upload_status = UploadStatus(drive, size, gid, self) diff --git a/bot/modules/watch.py b/bot/modules/watch.py index b6f96d8..8c360dc 100644 --- a/bot/modules/watch.py +++ b/bot/modules/watch.py @@ -40,12 +40,8 @@ def _watch(bot: Bot, update, isTar=False): except IndexError: name = "" reply_to = update.message.reply_to_message - if reply_to is not None: - tag = reply_to.from_user.username - else: - tag = None pswd = "" - listener = MirrorListener(bot, update, pswd, isTar, tag) + listener = MirrorListener(bot, update, pswd, isTar) ydl = YoutubeDLHelper(listener) threading.Thread(target=ydl.add_download,args=(link, f'{DOWNLOAD_DIR}{listener.uid}', qual, name)).start() sendStatusMessage(update, bot)