diff --git a/app/chain/download.py b/app/chain/download.py index ee0ecaee..179809d7 100644 --- a/app/chain/download.py +++ b/app/chain/download.py @@ -329,7 +329,8 @@ class DownloadChain(ChainBase): save_path: str = None, channel: MessageChannel = None, userid: str = None, - username: str = None) -> Tuple[List[Context], Dict[int, Dict[int, NotExistMediaInfo]]]: + username: str = None + ) -> Tuple[List[Context], Dict[Union[int, str], Dict[int, NotExistMediaInfo]]]: """ 根据缺失数据,自动种子列表中组合择优下载 :param contexts: 资源上下文列表 @@ -509,7 +510,7 @@ class DownloadChain(ChainBase): start_episode = tv.start_episode or 1 # 缺失整季的转化为缺失集进行比较 if not need_episodes: - need_episodes = list(range(start_episode, total_episode)) + need_episodes = list(range(start_episode, total_episode + 1)) # 循环种子 for context in contexts: # 媒体信息 @@ -640,7 +641,7 @@ class DownloadChain(ChainBase): mediainfo: MediaInfo, no_exists: Dict[int, Dict[int, NotExistMediaInfo]] = None, totals: Dict[int, int] = None - ) -> Tuple[bool, Dict[int, Dict[int, NotExistMediaInfo]]]: + ) -> Tuple[bool, Dict[Union[int, str], Dict[int, NotExistMediaInfo]]]: """ 检查媒体库,查询是否存在,对于剧集同时返回不存在的季集信息 :param meta: 元数据 diff --git a/app/chain/subscribe.py b/app/chain/subscribe.py index 3cb5ee10..dcbeca31 100644 --- a/app/chain/subscribe.py +++ b/app/chain/subscribe.py @@ -366,10 +366,14 @@ class SubscribeChain(ChainBase): """ 判断是否应完成订阅 """ + mediakey = subscribe.tmdbid or subscribe.doubanid + # 是否有剩余集 + no_lefts = lefts is None or not lefts.get(mediakey) + # 是否完成订阅 if not subscribe.best_version: # 非洗板 - if ((not lefts and meta.type == MediaType.TV) - or ((downloads or not lefts) and meta.type == MediaType.MOVIE)): + if ((no_lefts and meta.type == MediaType.TV) + or ((downloads or no_lefts) and meta.type == MediaType.MOVIE)): # 全部下载完成 logger.info(f'{mediainfo.title_year} 完成订阅') self.subscribeoper.delete(subscribe.id)