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..bb5417d7 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,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: - return self._start_ep, self._end_ep, 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