diff --git a/bot/helper/bot_utils.py b/bot/helper/bot_utils.py
index aaefc25..b6cf8cd 100644
--- a/bot/helper/bot_utils.py
+++ b/bot/helper/bot_utils.py
@@ -17,8 +17,8 @@ def get_download_index(_list, gid):
index += 1
-def get_download_str_list():
- str_list = []
+def get_download_str():
+ result = ""
for status in list(download_list.values()):
- str_list.append(status.progress() + status.speed() + status.status())
- return str_list
+ result += (status.progress() + status.speed() + status.status())
+ return result
diff --git a/bot/helper/download_tools.py b/bot/helper/download_tools.py
index 3776831..78b669c 100644
--- a/bot/helper/download_tools.py
+++ b/bot/helper/download_tools.py
@@ -61,17 +61,18 @@ class DownloadHelper:
# Start tracking the actual download
previous = None
- while not self.__get_download().is_complete:
+ download = self.__get_download()
+ while not download.is_complete:
+ status_list = get_download_status_list()
if self.__get_download().has_failed:
self.__listener.onDownloadError(self.__get_download().error_message)
break
# TODO: Find a better way
- progress_str_list = get_download_str_list()
+ progress_str_list = get_download_str()
if progress_str_list != previous:
- self.__listener.onDownloadProgress(status_list,
- get_download_index(status_list, self.__get_download().gid))
+ self.__listener.onDownloadProgress(status_list, index)
previous = progress_str_list
-
+ download = self.__get_download()
sleep(DOWNLOAD_STATUS_UPDATE_INTERVAL)
- self.__listener.onDownloadComplete(status_list, get_download_index(status_list, self.__get_download().gid))
+ self.__listener.onDownloadComplete(status_list, index)
diff --git a/bot/mirror.py b/bot/mirror.py
index c0b49cd..ca5904b 100644
--- a/bot/mirror.py
+++ b/bot/mirror.py
@@ -1,12 +1,14 @@
from telegram.ext import CommandHandler, run_async
+from telegram.error import BadRequest
from bot.helper import download_tools, gdriveTools, listeners
-from bot import config, LOGGER, dispatcher
+from bot import LOGGER, dispatcher
LOGGER.info('mirror.py')
def get_readable_message(progress_list: list):
msg = ""
+ LOGGER.info(progress_list)
for status in progress_list:
msg += "Name: {}\n" \
"status: {}\n" \
@@ -15,7 +17,7 @@ def get_readable_message(progress_list: list):
"ETA: {}\n\n".format(status.name(), status.status(),
status.progress(), status.size(),
status.speed(), status.eta())
- return msg
+ return msg
class MirrorListener(listeners.MirrorListeners):
@@ -26,18 +28,23 @@ class MirrorListener(listeners.MirrorListeners):
LOGGER.info("Adding link: " + link)
def onDownloadProgress(self, progress_status_list: list, index: int):
- LOGGER.info("Editing message")
msg = get_readable_message(progress_status_list)
- self.context.bot.edit_message_text(text=msg, message_id=self.reply_message.message_id,
- chat_id=self.reply_message.chat.id,
- parse_mode='HTMl')
+ if self.reply_message.text != msg:
+ LOGGER.info("Editing message")
+ self.context.bot.edit_message_text(text=msg, message_id=self.reply_message.message_id,
+ chat_id=self.reply_message.chat.id,
+ parse_mode='HTMl')
def onDownloadComplete(self, progress_status_list, index: int):
msg = get_readable_message(progress_status_list)
LOGGER.info("Download completed")
- self.context.bot.edit_message_text(text=msg, message_id=self.reply_message.message_id,
- chat_id=self.reply_message.chat.id,
- parse_mode='HTMl')
+ try:
+ LOGGER.info("Editing message")
+ self.context.bot.edit_message_text(text=msg, message_id=self.reply_message.message_id,
+ chat_id=self.reply_message.chat.id,
+ parse_mode='HTMl')
+ except BadRequest:
+ pass
gdrive = gdriveTools.GoogleDriveHelper(self)
gdrive.upload(progress_status_list[index].name())
@@ -48,11 +55,13 @@ class MirrorListener(listeners.MirrorListeners):
parse_mode='HTMl')
def onUploadStarted(self, progress_status_list: list, index: int):
- msg = get_readable_message(progress_status_list)
- if not msg != self.update.message.text:
+ try:
+ msg = get_readable_message(progress_status_list)
self.context.bot.edit_message_text(text=msg, message_id=self.reply_message.message_id,
chat_id=self.reply_message.chat.id,
parse_mode='HTMl')
+ except BadRequest:
+ pass
def onUploadComplete(self, link: str, progress_status_list: list, index: int):
msg = '{}'.format(link, progress_status_list[index].name())