From 476adc308d025e9d7b5fe4c68a639ea90677ca92 Mon Sep 17 00:00:00 2001 From: EstrellaXD Date: Wed, 3 May 2023 20:24:45 +0800 Subject: [PATCH] Add advance to subtitle rename --- src/module/manager/renamer.py | 16 ++++--------- src/module/parser/analyser/torrent_parser.py | 25 +++++++++++++++++++- 2 files changed, 29 insertions(+), 12 deletions(-) diff --git a/src/module/manager/renamer.py b/src/module/manager/renamer.py index 81be1c49..0c8db6c8 100644 --- a/src/module/manager/renamer.py +++ b/src/module/manager/renamer.py @@ -95,13 +95,15 @@ class Renamer: subtitle_list: list[str], bangumi_name: str, season: int, + method: str, _hash ): + method = "subtitle_" + method for subtitle_path in subtitle_list: suffix = os.path.splitext(subtitle_path)[-1] old_name = self.get_file_name(subtitle_path) new_name = self._renamer.torrent_parser( - method="subtitle", + method=method, torrent_name=old_name, bangumi_name=bangumi_name, season=season, @@ -175,6 +177,7 @@ class Renamer: subtitle_list=subtitle_list, bangumi_name=bangumi_name, season=season, + method=rename_method, _hash=info.hash ) elif len(media_list) > 1: @@ -191,17 +194,8 @@ class Renamer: subtitle_list=subtitle_list, bangumi_name=bangumi_name, season=season, + method=rename_method, _hash=info.hash ) else: logger.warning(f"{info.name} has no media file") - - -if __name__ == '__main__': - from module.conf import settings, setup_logger - setup_logger() - client = DownloadClient(settings) - renamer = Renamer(client, settings) - save_path = "D:\Videos\Bangumi\我推的孩子\Season 1\[XKsub][Oshi no Ko][01][CHS][1080P][WEBrip][MP4].mp4" - path = renamer.get_file_name(save_path) - print(path) \ No newline at end of file diff --git a/src/module/parser/analyser/torrent_parser.py b/src/module/parser/analyser/torrent_parser.py index 8db2825b..241e8958 100644 --- a/src/module/parser/analyser/torrent_parser.py +++ b/src/module/parser/analyser/torrent_parser.py @@ -116,13 +116,36 @@ def rename_subtitle(info: DownloadInfo): return new_name +def rename_subtitle_advance(info: DownloadInfo): + subtitle_lang = "zh" + break_flag = False + for key, value in SUBTITLE_LANG.items(): + for lang in value: + if lang in info.name: + subtitle_lang = key + break_flag = True + break + if break_flag: + break + for rule in RULES: + match_obj = re.match(rule, info.file_name, re.I) + if match_obj is not None: + new_name = re.sub( + r"[\[\]]", + "", + f"{info.folder_name} S{info.season}E{match_obj.group(2)}.{subtitle_lang}{info.suffix}", + ) + return new_name + + METHODS = { "normal": rename_normal, "pn": rename_pn, "advance": rename_advance, "no_season_pn": rename_no_season_pn, "none": rename_none, - "subtitle": rename_subtitle, + "subtitle_pn": rename_subtitle, + "subtitle_advance": rename_subtitle_advance, }