This commit is contained in:
EstrellaXD
2023-05-02 23:50:30 +08:00
parent a9f3cdd281
commit 9e296b57d6
13 changed files with 138 additions and 108 deletions

View File

@@ -2,13 +2,13 @@ import os
import time
import logging
from module.conf import settings, setup_logger, LOG_PATH, DATA_PATH, RSSLink, VERSION
from module.conf import setup_logger, LOG_PATH, DATA_PATH, RSSLink, VERSION
from module.utils import load_program_data, save_program_data
from module.core import DownloadClient
from module.manager import Renamer, FullSeasonGet
from module.rss import RSSAnalyser
from module.models import ProgramData
from module.models import ProgramData, Config
logger = logging.getLogger(__name__)
@@ -19,10 +19,10 @@ def reset_log():
os.remove(LOG_PATH)
def load_data_file(rss_link: str) -> ProgramData:
def load_data_file(rss_link: str, data_version) -> ProgramData:
empty_data = ProgramData(
rss_link=rss_link,
data_version=settings.data_version,
data_version=data_version,
)
if not os.path.exists(DATA_PATH):
program_data = empty_data
@@ -30,28 +30,29 @@ def load_data_file(rss_link: str) -> ProgramData:
logger.info("Building data information...")
else:
program_data = load_program_data(DATA_PATH)
if program_data.rss_link != rss_link or program_data.data_version != settings.data_version:
if program_data.rss_link != rss_link or program_data.data_version != data_version:
program_data = empty_data
logger.info("Rebuilding data information...")
return program_data
def main_process(program_data: ProgramData, download_client: DownloadClient):
rename = Renamer(download_client, settings)
rss_analyser = RSSAnalyser(settings)
def main_process(program_data: ProgramData, download_client: DownloadClient, _settings: Config):
rename = Renamer(download_client, _settings)
rss_analyser = RSSAnalyser(_settings)
while True:
times = 0
if settings.rss_parser.enable:
rss_analyser.run(program_data.bangumi_info, download_client, program_data.rss_link)
if settings.bangumi_manage.eps_complete and program_data.bangumi_info != []:
FullSeasonGet().eps_complete(program_data.bangumi_info, download_client)
if _settings.rss_parser.enable:
rss_analyser.run(program_data.bangumi_info, program_data.rss_link)
download_client.add_rules(program_data.bangumi_info, program_data.rss_link)
if _settings.bangumi_manage.eps_complete and program_data.bangumi_info != []:
FullSeasonGet(settings=_settings).eps_complete(program_data.bangumi_info, download_client)
logger.info("Running....")
save_program_data(DATA_PATH, program_data)
while times < settings.program.rename_times:
if settings.bangumi_manage.enable:
while times < _settings.program.rename_times:
if _settings.bangumi_manage.enable:
rename.rename()
times += 1
time.sleep(settings.program.sleep_time / settings.program.rename_times)
time.sleep(_settings.program.sleep_time / _settings.program.rename_times)
def show_info():
@@ -63,9 +64,8 @@ def show_info():
logger.info("Starting AutoBangumi...")
def run():
def run(settings: Config):
# 初始化
settings.reload()
rss_link = RSSLink()
reset_log()
setup_logger()
@@ -73,10 +73,10 @@ def run():
if settings.rss_parser.token in ["", "token", None]:
logger.error("Please set your RSS token in config file.")
exit(1)
download_client = DownloadClient()
download_client = DownloadClient(settings)
download_client.auth()
download_client.init_downloader()
download_client.rss_feed(rss_link)
bangumi_data = load_data_file(rss_link)
bangumi_data = load_data_file(rss_link, settings.data_version)
# 主程序循环
main_process(bangumi_data, download_client)
main_process(bangumi_data, download_client, settings)