From 94b8633803e19ae5004d6d017a0449d39767f01d Mon Sep 17 00:00:00 2001 From: Attente <19653207+wikrin@users.noreply.github.com> Date: Tue, 10 Dec 2024 00:32:01 +0800 Subject: [PATCH 1/2] =?UTF-8?q?=E6=89=8B=E5=8A=A8=E6=95=B4=E7=90=86?= =?UTF-8?q?=E4=B8=AD`=E9=9B=86=E6=95=B0=E5=81=8F=E7=A7=BB`=E5=8F=AF?= =?UTF-8?q?=E4=B8=8D=E4=BD=BF=E7=94=A8`=E9=9B=86=E6=95=B0=E5=AE=9A?= =?UTF-8?q?=E4=BD=8D`?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/chain/transfer.py | 2 +- app/helper/format.py | 11 +++++++++-- 2 files changed, 10 insertions(+), 3 deletions(-) diff --git a/app/chain/transfer.py b/app/chain/transfer.py index 9fde40a0..646e2483 100644 --- a/app/chain/transfer.py +++ b/app/chain/transfer.py @@ -330,7 +330,7 @@ class TransferChain(ChainBase): # 自定义识别 if formaterHandler: # 开始集、结束集、PART - begin_ep, end_ep, part = formaterHandler.split_episode(file_path.name) + begin_ep, end_ep, part = formaterHandler.split_episode(file_name=file_path.name, file_meta=file_meta) if begin_ep is not None: file_meta.begin_episode = begin_ep file_meta.part = part diff --git a/app/helper/format.py b/app/helper/format.py index f2c9a3f9..51514dc6 100644 --- a/app/helper/format.py +++ b/app/helper/format.py @@ -3,6 +3,8 @@ from typing import Tuple, Optional import parse +from app.core.meta.metabase import MetaBase + class FormatParser(object): _key = "" @@ -77,7 +79,7 @@ class FormatParser(object): return True return False - def split_episode(self, file_name: str) -> Tuple[Optional[int], Optional[int], Optional[str]]: + def split_episode(self, file_name: str, file_meta: MetaBase) -> Tuple[Optional[int], Optional[int], Optional[str]]: """ 拆分集数,返回开始集数,结束集数,Part信息 """ @@ -94,7 +96,12 @@ class FormatParser(object): start_ep = self.__offset.replace("EP", str(self._start_ep)) return int(eval(start_ep)), None, self.part if not self._format: - return self._start_ep, self._end_ep, self.part + try: + start_ep = eval(self.__offset.replace("EP", str(file_meta.begin_episode))) if file_meta.begin_episode is not None else None + end_ep = eval(self.__offset.replace("EP", str(file_meta.end_episode))) if file_meta.end_episode is not None else None + return int(start_ep), int(end_ep), self.part + except (SyntaxError, NameError) as e: + return None, None, self.part else: s, e = self.__handle_single(file_name) start_ep = self.__offset.replace("EP", str(s)) if s else None From a31b4bc0a18b8a35eaf83ecabcb17af8f54160cc Mon Sep 17 00:00:00 2001 From: Attente <19653207+wikrin@users.noreply.github.com> Date: Tue, 10 Dec 2024 00:37:50 +0800 Subject: [PATCH 2/2] refactor(app): improve episode offset calculation - Remove unnecessary try-except block --- app/helper/format.py | 9 +++------ 1 file changed, 3 insertions(+), 6 deletions(-) diff --git a/app/helper/format.py b/app/helper/format.py index 51514dc6..bb5417d7 100644 --- a/app/helper/format.py +++ b/app/helper/format.py @@ -96,12 +96,9 @@ class FormatParser(object): start_ep = self.__offset.replace("EP", str(self._start_ep)) return int(eval(start_ep)), None, self.part if not self._format: - try: - start_ep = eval(self.__offset.replace("EP", str(file_meta.begin_episode))) if file_meta.begin_episode is not None else None - end_ep = eval(self.__offset.replace("EP", str(file_meta.end_episode))) if file_meta.end_episode is not None else None - return int(start_ep), int(end_ep), self.part - except (SyntaxError, NameError) as e: - return None, None, self.part + start_ep = eval(self.__offset.replace("EP", str(file_meta.begin_episode))) if file_meta.begin_episode else None + end_ep = eval(self.__offset.replace("EP", str(file_meta.end_episode))) if file_meta.end_episode else None + return int(start_ep) if start_ep else None, int(end_ep) if end_ep else None, self.part else: s, e = self.__handle_single(file_name) start_ep = self.__offset.replace("EP", str(s)) if s else None