def update_all_messages(): msg = get_readable_message() msg += f"<b>CPU:</b> {psutil.cpu_percent()}%" \ f" <b>DISK:</b> {psutil.disk_usage('/').percent}%" \ f" <b>RAM:</b> {psutil.virtual_memory().percent}%" with download_dict_lock: dlspeed_bytes = 0 uldl_bytes = 0 for download in list(download_dict.values()): speedy = download.speed() if download.status() == MirrorStatus.STATUS_DOWNLOADING: if 'KiB/s' in speedy: dlspeed_bytes += float(speedy.split('K')[0]) * 1024 elif 'MiB/s' in speedy: dlspeed_bytes += float(speedy.split('M')[0]) * 1048576 if download.status() == MirrorStatus.STATUS_UPLOADING: if 'KB/s' in speedy: uldl_bytes += float(speedy.split('K')[0]) * 1024 elif 'MB/s' in speedy: uldl_bytes += float(speedy.split('M')[0]) * 1048576 dlspeed = get_readable_file_size(dlspeed_bytes) ulspeed = get_readable_file_size(uldl_bytes) msg += f"\n<b>DL:</b>{dlspeed}ps 🔻| <b>UL:</b>{ulspeed}ps 🔺\n" with status_reply_dict_lock: for chat_id in list(status_reply_dict.keys()): if status_reply_dict[ chat_id] and msg != status_reply_dict[chat_id].text: if len(msg) == 0: msg = "Starting DL" try: editMessage(msg, status_reply_dict[chat_id]) except Exception as e: LOGGER.error(str(e)) status_reply_dict[chat_id].text = msg
def get_readable_message(): with download_dict_lock: msg = "" for download in list(download_dict.values()): msg += f"<b>📂Filename :</b> <code>{download.name()}</code>" msg += f"\n<b>Status :</b> <i>{download.status()}</i>" if download.status( ) != MirrorStatus.STATUS_ARCHIVING and download.status( ) != MirrorStatus.STATUS_EXTRACTING: msg += f"\n<code>{get_progress_bar_string(download)} {download.progress()}</code>" if download.status() == MirrorStatus.STATUS_DOWNLOADING: msg += f"\n<b>Downloaded :</b> {get_readable_file_size(download.processed_bytes())} of {download.size()}" else: msg += f"\n<b>Uploaded :</b> {get_readable_file_size(download.processed_bytes())} of {download.size()}" msg += f"\n<b>Speed :</b> {download.speed()}, \n<b>ETA:</b> {download.eta()} " # if hasattr(download, 'is_torrent'): try: msg += f"\n<b>Info :- Seeders:</b> {download.aria_download().num_seeders}" \ f" & <b>Peers :</b> {download.aria_download().connections}" except: pass if download.status() == MirrorStatus.STATUS_DOWNLOADING: msg += f"\n<b>To Stop 👉 :</b> <code>/{BotCommands.CancelMirrorCommand} {download.gid()}</code>" msg += "\n\n" return msg
def getDownloadByGid(gid): with download_dict_lock: for dl in download_dict.values(): status = dl.status() if status != MirrorStatus.STATUS_UPLOADING and status != MirrorStatus.STATUS_ARCHIVING and status != MirrorStatus.STATUS_EXTRACTING: if dl.gid() == gid: return dl return None
def cancel_all(update, context): with download_dict_lock: count = 0 for dlDetails in list(download_dict.values()): if dlDetails.status() == MirrorStatus.STATUS_DOWNLOADING \ or dlDetails.status() == MirrorStatus.STATUS_WAITING: dlDetails.download().cancel_download() count += 1 delete_all_messages() sendMessage(f'Cancelled {count} downloads!', context.bot, update)
def sendStatusMessage(msg, bot): progress = get_readable_message() progress += f"<b>CPU:</b> {psutil.cpu_percent()}%" \ f" <b>DISK:</b> {psutil.disk_usage('/').percent}%" \ f" <b>RAM:</b> {psutil.virtual_memory().percent}%" with download_dict_lock: dlspeed_bytes = 0 uldl_bytes = 0 for download in list(download_dict.values()): speedy = download.speed() if download.status() == MirrorStatus.STATUS_DOWNLOADING: if 'KiB/s' in speedy: dlspeed_bytes += float(speedy.split('K')[0]) * 1024 elif 'MiB/s' in speedy: dlspeed_bytes += float(speedy.split('M')[0]) * 1048576 if download.status() == MirrorStatus.STATUS_UPLOADING: if 'KB/s' in speedy: uldl_bytes += float(speedy.split('K')[0]) * 1024 elif 'MB/s' in speedy: uldl_bytes += float(speedy.split('M')[0]) * 1048576 dlspeed = get_readable_file_size(dlspeed_bytes) ulspeed = get_readable_file_size(uldl_bytes) progress += f"\n<b>DL:</b>{dlspeed}ps 🔻| <b>UL:</b>{ulspeed}ps 🔺\n" with status_reply_dict_lock: if msg.message.chat.id in list(status_reply_dict.keys()): try: message = status_reply_dict[msg.message.chat.id] deleteMessage(bot, message) del status_reply_dict[msg.message.chat.id] except Exception as e: LOGGER.error(str(e)) del status_reply_dict[msg.message.chat.id] pass if len(progress) == 0: progress = "Starting DL" message = sendMessage(progress, bot, msg) status_reply_dict[msg.message.chat.id] = message