diff --git a/.idea/misc.xml b/.idea/misc.xml index e863a931..37b833f1 100644 --- a/.idea/misc.xml +++ b/.idea/misc.xml @@ -1,4 +1,4 @@ - + \ No newline at end of file diff --git a/auto_bangumi/app.py b/auto_bangumi/app.py index a97afd97..a1920d29 100644 --- a/auto_bangumi/app.py +++ b/auto_bangumi/app.py @@ -49,20 +49,18 @@ def show_info(): logger.info("Starting AutoBangumi...") -def rss_process(download_client: DownloadClient): - bangumi_data = json_config.load(settings.info_path) +def main_process(bangumi_data, download_client: DownloadClient): rss_analyser = RSSAnalyser() + rename = Renamer(download_client) while True: rss_analyser.run(bangumi_data["bangumi_info"], download_client) save_data_file(bangumi_data) - time.sleep(settings.sleep_time) - - -def rename_process(download_client: DownloadClient): - rename = Renamer(download_client) - while True: - rename.run() - time.sleep(settings.rename_sleep) + times = 0 + while times < settings.times: + rename.refresh() + rename.run() + times += 1 + time.sleep(settings.sleep_time) def run(): @@ -86,14 +84,9 @@ def run(): logger.error("Please add RIGHT RSS url.") quit() download_client.rss_feed() + bangumi_data = load_data_file() # 主程序循环 - - rss_thread = Process(target=rss_process, args=(download_client,)) - rename_thread = Process(target=rss_process, args=(download_client,)) - rss_thread.start() - rename_thread.start() - rename_thread.join() - rename_thread.join() + main_process(bangumi_data, download_client) if __name__ == "__main__": diff --git a/auto_bangumi/conf/const.py b/auto_bangumi/conf/const.py index b7680e92..39c72fbe 100644 --- a/auto_bangumi/conf/const.py +++ b/auto_bangumi/conf/const.py @@ -4,7 +4,8 @@ DEFAULT_SETTINGS = { "version": "2.5.0-beta2", "data_version": 4.0, "host_ip": "localhost:8080", - "sleep_time": 1800, + "sleep_time": 180, + "times": 10, "rename_sleep": 600, "user_name": "admin", "password": "adminadmin", diff --git a/auto_bangumi/core/renamer.py b/auto_bangumi/core/renamer.py index e482bccf..b267de15 100644 --- a/auto_bangumi/core/renamer.py +++ b/auto_bangumi/core/renamer.py @@ -10,8 +10,8 @@ logger = logging.getLogger(__name__) class Renamer: - def __init__(self, downloadClient: DownloadClient): - self.client = downloadClient + def __init__(self, download_client: DownloadClient): + self.client = download_client self._renamer = TitleParser() self.recent_info = self.client.get_torrent_info() self.rename_count = 0 @@ -29,7 +29,7 @@ class Renamer: for i in range(0, self.torrent_count): info = self.recent_info[i] name = info.name - hash = info.hash + torrent_hash = info.hash path_parts = PurePath(info.content_path).parts \ if PurePath(info.content_path).name != info.content_path \ else PureWindowsPath(info.content_path).parts @@ -40,14 +40,14 @@ class Renamer: logger.debug(f"Origin name: {path_name}") logger.debug(f"New name: {new_name}") if path_name != new_name: - self.client.rename_torrent_file(hash, path_name, new_name) + self.client.rename_torrent_file(torrent_hash, path_name, new_name) self.rename_count += 1 else: continue except: logger.warning(f"{path_name} rename failed") if settings.remove_bad_torrent: - self.client.delete_torrent(hash) + self.client.delete_torrent(torrent_hash) self.print_result() diff --git a/auto_bangumi/core/rss_analyser.py b/auto_bangumi/core/rss_analyser.py index e2000999..7b5dd89e 100644 --- a/auto_bangumi/core/rss_analyser.py +++ b/auto_bangumi/core/rss_analyser.py @@ -20,7 +20,7 @@ class RSSAnalyser: rss_titles = self._request.get_titles(settings.rss_link) self._request.close_session() for raw_title in rss_titles: - logger.info(raw_title) + logger.debug(raw_title) extra_add = True for d in bangumi_info: if re.search(d["title_raw"], raw_title) is not None: @@ -33,7 +33,7 @@ class RSSAnalyser: def run(self, bangumi_info: list, download_client: DownloadClient): self.rss_to_data(bangumi_info) - download_client.add_rules(bangumi_info) + download_client.add_rules(bangumi_info, rss_link=settings.rss_link) if __name__ == "__main__": diff --git a/auto_bangumi/parser/__init__.py b/auto_bangumi/parser/__init__.py index aaccf13e..a05770dd 100644 --- a/auto_bangumi/parser/__init__.py +++ b/auto_bangumi/parser/__init__.py @@ -1 +1 @@ -from .parser import TitleParser \ No newline at end of file +from .parser import TitleParser diff --git a/auto_bangumi/parser/analyser/simple_analyser.py b/auto_bangumi/parser/analyser/simple_analyser.py index 66a2472d..8b1a7393 100644 --- a/auto_bangumi/parser/analyser/simple_analyser.py +++ b/auto_bangumi/parser/analyser/simple_analyser.py @@ -4,7 +4,7 @@ import requests from conf.conf import settings from utils import json_config -from bangumi_parser.episode import Episode +from parser.episode import Episode logger = logging.getLogger(__name__) diff --git a/auto_bangumi/parser/parser.py b/auto_bangumi/parser/parser.py index 417f23fd..1de74fb7 100644 --- a/auto_bangumi/parser/parser.py +++ b/auto_bangumi/parser/parser.py @@ -19,26 +19,29 @@ class TitleParser: def return_dict(self, raw): tmdb = TMDBMatcher() - episode = self.raw_parser(raw) try: - tmdb_info = tmdb.tmdb_search(episode.title) - official_title = tmdb_info.title_zh if settings.zh_title else tmdb_info.title_jp - season = tmdb_info.last_season + episode = self.raw_parser(raw) + try: + tmdb_info = tmdb.tmdb_search(episode.title) + official_title = tmdb_info.title_zh if settings.zh_title else tmdb_info.title_jp + season = tmdb_info.last_season + except Exception as e: + logger.debug(e) + logger.info("Not Match in TMDB") + official_title = episode.title + season = episode.season_info.number + data = { + "official_title": official_title, + "title_raw": episode.title, + "season": season, + "season_raw": episode.season_info.raw, + "group": episode.group, + "dpi": episode.dpi, + "source": episode.source, + "subtitle": episode.subtitle, + "added": False, + "eps_collect": True if settings.eps_complete else False, + } + return data except Exception as e: - logger.debug(e) - logger.info("Not Match in TMDB") - official_title = episode.title - season = episode.season_info.number - data = { - "official_title": official_title, - "title_raw": episode.title, - "season": season, - "season_raw": episode.season_info.raw, - "group": episode.group, - "dpi": episode.dpi, - "source": episode.source, - "subtitle": episode.subtitle, - "added": False, - "eps_collect": True if settings.eps_complete else False, - } - return data \ No newline at end of file + logger.debug(e) \ No newline at end of file