From 7be34940e0779182f7520cf477d0790fefc8bed6 Mon Sep 17 00:00:00 2001 From: EstrellaXD Date: Sun, 15 May 2022 15:29:04 +0800 Subject: [PATCH] =?UTF-8?q?=E5=8E=BB=E6=8E=89=E4=BA=86=E5=AD=97=E5=B9=95?= =?UTF-8?q?=E7=BB=84=E4=BF=A1=E6=81=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- rename_qb.py | 9 +++++---- test.py | 26 ++++++++++++++++++++++++++ 2 files changed, 31 insertions(+), 4 deletions(-) create mode 100644 test.py diff --git a/rename_qb.py b/rename_qb.py index aea3db75..1568fac1 100644 --- a/rename_qb.py +++ b/rename_qb.py @@ -33,7 +33,6 @@ class Qbtorrent_Rename: except qbittorrentapi.LoginFailed as e: print(e) self.recent_info = self.qbt_client.torrents_info(status_filter='completed') - self.name = None self.hash = None self.new_name = None self.count = 0 @@ -42,10 +41,12 @@ class Qbtorrent_Rename: def rename(self, idx): self.name = self.recent_info[idx].name + n = re.split(r'\[|\]', self.name) + file_name = self.name.replace(f'[{n[1]}]', '') for rule in episode_rules: - matchObj = re.match(rule, self.name, re.I) + matchObj = re.match(rule, file_name, re.I) if matchObj is not None: - self.new_name = f'{matchObj.group(1)} E{matchObj.group(2)} {matchObj.group(3)}' + self.new_name = f'{matchObj.group(1)}{matchObj.group(2)} {matchObj.group(3)}' def qb_rename(self, idx): self.rename(idx) @@ -65,6 +66,6 @@ if __name__ == "__main__": try: qb.qb_rename(i) except: - print("-----已完成对{}个文件的检查,已对其中{}个文件进行重命名-----".format(i+1, qb.count)) + print(f"-----已完成对{i+1}个文件的检查,已对其中{qb.count}个文件进行重命名-----") print("------------------------完成------------------------") quit() diff --git a/test.py b/test.py new file mode 100644 index 00000000..5d37623b --- /dev/null +++ b/test.py @@ -0,0 +1,26 @@ +import re +import os + +file_name = '[Sakurato] Machikado Mazoku 2-choume [06][AVC-8bit 1080P AAC][CHS]' +episode_rules = [r'(.*)\[(\d{1,3}|\d{1,3}\.\d{1,2})(?:v\d{1,2})?(?:END)?\](.*)', + r'(.*)\[E(\d{1,3}|\d{1,3}\.\d{1,2})(?:v\d{1,2})?(?:END)?\](.*)', + r'(.*)\[第(\d*\.*\d*)话(?:END)?\](.*)', + r'(.*)\[第(\d*\.*\d*)話(?:END)?\](.*)', + r'(.*)第(\d*\.*\d*)话(?:END)?(.*)', + r'(.*)第(\d*\.*\d*)話(?:END)?(.*)', + r'(.*)- (\d{1,3}|\d{1,3}\.\d{1,2})(?:v\d{1,2})?(?:END)? (.*)'] + + +def new_name(name): + n = re.split(r'\[|\]', name) + file_name = name.replace(f'[{n[1]}]', '') + for rule in episode_rules: + matchObj = re.match(rule, file_name, re.I) + if matchObj is not None: + new_name = f'{matchObj.group(1)}E{matchObj.group(2)} {matchObj.group(3)}' + return new_name + + +print(new_name(file_name)) + +