Fix some stuffs

Signed-off-by: lzzy12 <jhashivam2020@gmail.com>
This commit is contained in:
lzzy12 2019-09-28 19:43:36 +05:30
parent ae16a8338d
commit 0fac78be49
4 changed files with 39 additions and 23 deletions

View File

@ -1 +1,5 @@
aria2c --enable-rpc --rpc-listen-all=false --rpc-listen-port 6800 --max-connection-per-server=10 --rpc-max-request-size=1024M --seed-time=0.01 --min-split-size=10M --follow-torrent=mem --split=10 --daemon=true --allow-overwrite=true
export MAX_DOWNLOAD_SPEED=0
aria2c --enable-rpc --rpc-listen-all=false --rpc-listen-port 6800 \
--max-connection-per-server=10 --rpc-max-request-size=1024M \
--seed-time=0.01 --min-split-size=10M --follow-torrent=mem --split=10 \
--daemon=true --allow-overwrite=true --max-overall-download-limit=$MAX_DOWNLOAD_SPEED

View File

@ -54,6 +54,9 @@ class DownloadHelper:
# Waiting for the actual gid
new_gid = None
while new_gid is None:
if self.__get_download().has_failed:
self.__listener.onDownloadError(self.__get_download().error_message, status_list[index])
break
sleep(DOWNLOAD_STATUS_UPDATE_INTERVAL)
if should_update:
# Check every few seconds
@ -68,12 +71,12 @@ class DownloadHelper:
previous = None
download = self.__get_download()
while not download.is_complete:
if download.has_failed:
self.__listener.onDownloadError(self.__get_download().error_message, status_list[index])
return
if should_update:
status_list = get_download_status_list()
index = get_download_index(status_list, self.__get_download().gid)
if self.__get_download().has_failed:
self.__listener.onDownloadError(self.__get_download().error_message, status_list[index])
break
# TODO: Find a better way to differentiate between 2 list of objects
progress_str_list = get_download_str()
if progress_str_list != previous:
@ -84,4 +87,5 @@ class DownloadHelper:
previous = progress_str_list
download = self.__get_download()
sleep(DOWNLOAD_STATUS_UPDATE_INTERVAL)
self.__listener.onDownloadComplete(status_list, index)

View File

@ -9,7 +9,10 @@ from .fs_utils import get_mime_type
from .bot_utils import *
import logging
logging.getLogger('googleapiclient.discovery').setLevel(logging.ERROR)
class GoogleDriveHelper:
def __init__(self, listener=None):
@ -152,10 +155,13 @@ class GoogleDriveHelper:
pageToken=page_token).execute()
for file in response.get('files', []):
if file.get('mimeType') == "application/vnd.google-apps.folder":
msg +='⁍ <a href="https://drive.google.com/drive/folders/{}">{}</a> (folder)'.format(file.get('id'),file.get('name'))+"\n"
msg += '⁍ <a href="https://drive.google.com/drive/folders/{}">{}</a> (folder)'.format(
file.get('id'), file.get('name')) + "\n"
# Detect Whether Current Entity is a Folder or File.
else:
msg += '⁍ <a href="https://drive.google.com/uc?id={}&export=download">{}</a>'.format(file.get('id'),file.get('name'))+"\n"
msg += '⁍ <a href="https://drive.google.com/uc?id={}&export=download">{}</a>'.format(file.get('id'),
file.get(
'name')) + "\n"
page_token = response.get('nextPageToken', None)
if page_token is None:
break

View File

@ -2,9 +2,8 @@ from telegram.ext import CommandHandler, run_async
from bot.helper import download_tools, gdriveTools, listeners
from bot import LOGGER, dispatcher
from bot.helper import fs_utils
from bot import download_dict, status_reply_dict, DOWNLOAD_STATUS_UPDATE_INTERVAL
from bot import download_dict, status_reply_dict
from bot.helper.message_utils import *
from time import sleep
from bot.helper.bot_utils import get_readable_message, KillThreadException
LOGGER.info('mirror.py')
@ -18,14 +17,14 @@ class MirrorListener(listeners.MirrorListeners):
def onDownloadProgress(self, progress_status_list: list, index: int):
msg = get_readable_message(progress_status_list)
LOGGER.info("Editing message")
# LOGGER.info("Editing message")
try:
editMessage(msg, self.context, self.reply_message)
except BadRequest:
raise KillThreadException('Message deleted. Terminate thread')
def onDownloadComplete(self, progress_status_list, index: int):
LOGGER.info("Download completed")
LOGGER.info("Download completed: {}".format(progress_status_list[index].name()))
gdrive = gdriveTools.GoogleDriveHelper(self)
gdrive.upload(progress_status_list[index].name())
@ -40,13 +39,16 @@ class MirrorListener(listeners.MirrorListeners):
def onUploadComplete(self, link: str, progress_status_list: list, index: int):
msg = '<a href="{}">{}</a>'.format(link, progress_status_list[index].name())
del download_dict[self.update.update_id]
try:
deleteMessage(self.context, self.reply_message)
del status_reply_dict[self.update.effective_chat.id]
except BadRequest:
# This means that the message has been deleted because of a /status command
pass
except KeyError:
pass
sendMessage(msg, self.context, self.update)
del download_dict[self.update.update_id]
fs_utils.clean_download(progress_status_list[index].path())
def onUploadError(self, error: str, progress_status: list, index: int):