diff --git a/core/utils/general/loghandler.py b/core/utils/general/loghandler.py new file mode 100644 index 0000000..cc1da88 --- /dev/null +++ b/core/utils/general/loghandler.py @@ -0,0 +1,23 @@ +from core.utils.data.state import state +from core.utils.network.download import run_download_direct + +def split_data(data): + + count = data.count + downloads = data.data + + return count, downloads + +def check_completed(downloads, resume): + for download in downloads: + if download.completed == False: + if state.debug: + print(f"Found unfinished download: {download.title}") + if resume == True: + run_download_direct(download.magnet_uri) + if state.debug: + print(f"Resuming {download.title}") + + + + diff --git a/core/utils/network/download.py b/core/utils/network/download.py index 1e5dc17..10f25b2 100644 --- a/core/utils/network/download.py +++ b/core/utils/network/download.py @@ -27,5 +27,9 @@ def run_download(item, posts, post_titles): add_download_log(item, post_url, magnet_uri, False) add_magnet(magnet_uri) +def run_download_direct(magnet_uri): + start_client() + add_magnet(magnet_uri) + diff --git a/main.py b/main.py index 30dc17d..3ffc89e 100644 --- a/main.py +++ b/main.py @@ -2,8 +2,10 @@ from core.interface.gui import MainWindow from core.utils.data.state import state from core.network.aria2_integration import aria2server from core.network.aria2_integration import send_notification, update_log +from core.utils.general.logs import get_download_logs from core.utils.general.shutdown import closehelper, shutdown_event from core.utils.general.wrappers import run_thread +from core.utils.general.loghandler import split_data, check_completed from core.utils.config.config import read_config from PySide6 import QtWidgets import qdarktheme @@ -37,11 +39,14 @@ def keyboardinterrupthandler(signum, frame): if __name__ == "__main__": read_config() + logs = get_download_logs() + count, downloads = split_data(logs) if args.debug: state.debug = args.debug # override of read_config if state.debug: print("Starting Aria2 Server") state.aria2process = run_aria2server() + check_completed(downloads, True) signal.signal(signal.SIGINT, keyboardinterrupthandler) run_thread(threading.Thread(target=send_notification, args=(shutdown_event,), daemon=True)) run_thread(threading.Thread(target=update_log, args=(shutdown_event,), daemon=True))