from bot import download_dict def get_download(update_id): return download_dict[update_id].download() def get_download_status_list(): return list(download_dict.values()) def get_download_index(_list, gid): index = 0 for i in _list: if i.download().gid == gid: return index index += 1 def get_download_str(): result = "" for status in list(download_dict.values()): result += (status.progress() + status.speed() + status.status()) return result def get_readable_message(progress_list: list = download_dict.values()): msg = "" for status in progress_list: msg += "Name: {}\n" \ "status: {}\n" \ "Downloaded: {} of {}\n" \ "Speed: {}\n" \ "ETA: {}\n\n".format(status.name(), status.status(), status.progress(), status.size(), status.speed(), status.eta()) return msg # Custom Exception class for killing thread as soon as they aren't needed class KillThreadException(Exception): def __init__(self, message, error=None): super().__init__(message) self.error = error