mirror of
https://github.com/jxxghp/MoviePilot.git
synced 2026-09-04 23:17:20 +08:00
fix(format): improve episode parsing logic
This commit is contained in:
+18
-9
@@ -84,22 +84,31 @@ class FormatParser(object):
|
|||||||
拆分集数,返回开始集数,结束集数,Part信息
|
拆分集数,返回开始集数,结束集数,Part信息
|
||||||
"""
|
"""
|
||||||
# 指定的具体集数,直接返回
|
# 指定的具体集数,直接返回
|
||||||
if self._start_ep is not None and self._start_ep == self._end_ep:
|
if self._start_ep is not None:
|
||||||
if isinstance(self._start_ep, str):
|
if self._start_ep == self._end_ep:
|
||||||
s, e = self._start_ep.split("-")
|
# `details` 格式为 `X-X` 或者 `X`
|
||||||
start_ep = self.__offset.replace("EP", s)
|
if isinstance(self._start_ep, str):
|
||||||
end_ep = self.__offset.replace("EP", e)
|
# `details` 格式为 `X-X`
|
||||||
if int(s) == int(e):
|
s, e = self._start_ep.split("-")
|
||||||
|
start_ep = self.__offset.replace("EP", s)
|
||||||
|
end_ep = self.__offset.replace("EP", e)
|
||||||
|
if int(s) == int(e):
|
||||||
|
return int(eval(start_ep)), None, self.part
|
||||||
|
return int(eval(start_ep)), int(eval(end_ep)), self.part
|
||||||
|
else:
|
||||||
|
# `details` 格式为 `X`
|
||||||
|
start_ep = self.__offset.replace("EP", str(self._start_ep))
|
||||||
return int(eval(start_ep)), None, self.part
|
return int(eval(start_ep)), None, self.part
|
||||||
return int(eval(start_ep)), int(eval(end_ep)), self.part
|
|
||||||
else:
|
else:
|
||||||
start_ep = self.__offset.replace("EP", str(self._start_ep))
|
# `details` 格式为 `X,X`
|
||||||
return int(eval(start_ep)), None, self.part
|
return self.__offset.replace("EP", str(self._start_ep)), self.__offset.replace("EP", str(self._end_ep)), self.part
|
||||||
if not self._format:
|
if not self._format:
|
||||||
|
# 未填入`集数定位` 且没有`指定集数` 仅处理`集数偏移`
|
||||||
start_ep = eval(self.__offset.replace("EP", str(file_meta.begin_episode))) if file_meta.begin_episode else None
|
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
|
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
|
return int(start_ep) if start_ep else None, int(end_ep) if end_ep else None, self.part
|
||||||
else:
|
else:
|
||||||
|
# 有`集数定位`
|
||||||
s, e = self.__handle_single(file_name)
|
s, e = self.__handle_single(file_name)
|
||||||
start_ep = self.__offset.replace("EP", str(s)) if s else None
|
start_ep = self.__offset.replace("EP", str(s)) if s else None
|
||||||
end_ep = self.__offset.replace("EP", str(e)) if e else None
|
end_ep = self.__offset.replace("EP", str(e)) if e else None
|
||||||
|
|||||||
Reference in New Issue
Block a user