diff --git a/bot/helper/bot_utils.py b/bot/helper/bot_utils.py index 0bf776d..7e6f3fd 100644 --- a/bot/helper/bot_utils.py +++ b/bot/helper/bot_utils.py @@ -1,9 +1,10 @@ -import math from bot import download_dict +from bot.helper.download_status import DownloadStatus -PROGRESS_MAX_SIZE = math.floor(100 / 8) +PROGRESS_MAX_SIZE = 100 // 8 PROGRESS_INCOMPLETE = ['▏', '▎', '▍', '▌', '▋', '▊', '▉'] + def get_download(message_id): return download_dict[message_id].download() @@ -12,25 +13,21 @@ def get_download_status_list(): return list(download_dict.values()) -def get_progress(status): +def get_progress_bar_string(status: DownloadStatus): completed = status.download().completed_length/8 total = status.download().total_length/8 if total == 0: - p = 0 + p = 0 else: - try: p = round(completed * 100 / total) - except ZeroDivisionError: - pass p = min(max(p, 0), 100) - p_str = '[' - cFull = math.floor(p / 8) + cFull = p // 8 cPart = p % 8 - 1 - p_str += '█'*cFull + p_str = '█'*cFull if cPart >= 0: p_str += PROGRESS_INCOMPLETE[cPart] p_str += ' '*(PROGRESS_MAX_SIZE - cFull) - p_str = f"{p_str}]" + p_str = f"[{p_str}]" return p_str @@ -50,14 +47,16 @@ def get_download_str(): def get_readable_message(progress_list: list = download_dict.values()): - msg = "" + msg = '' for status in progress_list: msg += f'Name: {status.name()}\n' \ f'status: {status.status()}\n' - if status.status() == "Downloading": - msg += f'{get_progress(status)} {status.progress()} of {status.size()}\n' \ - f'Speed: {status.speed()}\n' \ - f'ETA: {status.eta()}\n\n' + + if status.status() == DownloadStatus.STATUS_DOWNLOADING: + msg += f'{get_progress_bar_string(status)} {status.progress()} of {status.size()}\n' \ + f'Speed: {status.speed()}\n' \ + f'ETA: {status.eta()}\n' + msg += '\n' return msg