import os.path import time import logging import threading from module.rss import RSSAnalyser, add_rules from module.manager import Renamer, FullSeasonGet from module.database import BangumiDatabase from module.downloader import DownloadClient from module.conf import settings from module.conf import VERSION logger = logging.getLogger(__name__) stop_event = threading.Event() def rss_loop(stop_event): rss_analyser = RSSAnalyser() rss_link = settings.rss_link() while not stop_event.is_set(): rss_analyser.run(rss_link) add_rules() if settings.bangumi_manage.eps_complete: with FullSeasonGet() as full_season_get: full_season_get.eps_complete() stop_event.wait(settings.program.rss_time) def rename_loop(stop_event): while not stop_event.is_set(): with Renamer() as renamer: renamer.rename() stop_event.wait(settings.program.rename_time) rss_thread = threading.Thread( target=rss_loop, args=(stop_event,), ) rename_thread = threading.Thread( target=rename_loop, args=(stop_event,), ) def start_info(): with open("icon", "r") as f: for line in f.readlines(): logger.info(line.strip("\n")) logger.info( f"Version {VERSION} Author: EstrellaXD Twitter: https://twitter.com/Estrella_Pan" ) logger.info("GitHub: https://github.com/EstrellaXD/Auto_Bangumi/") logger.info("Starting AutoBangumi...") def stop_thread(): global rss_thread, rename_thread if not stop_event.is_set(): stop_event.set() rename_thread.join() rss_thread.join() def start_thread(): global rss_thread, rename_thread if stop_event.is_set(): stop_event.clear() time.sleep(1) settings.load() rss_thread = threading.Thread(target=rss_loop, args=(stop_event,)) rename_thread = threading.Thread(target=rename_loop, args=(stop_event,)) rss_thread.start() rename_thread.start() return {"status": "ok"} def start_program(): global rss_thread, rename_thread start_info() with BangumiDatabase() as database: database.update_table() with DownloadClient() as client: client.init_downloader() client.add_rss_feed(settings.rss_link()) rss_thread = threading.Thread(target=rss_loop, args=(stop_event,)) rename_thread = threading.Thread(target=rename_loop, args=(stop_event,)) rss_thread.start() rename_thread.start()