mirror of
https://github.com/jxxghp/MoviePilot.git
synced 2026-09-05 07:27:15 +08:00
fix(subscribe): prioritize update state when fininsh subscribe
This commit is contained in:
+30
-30
@@ -465,18 +465,18 @@ class SubscribeChain(ChainBase, metaclass=Singleton):
|
|||||||
no_lefts = not lefts or not lefts.get(mediakey)
|
no_lefts = not lefts or not lefts.get(mediakey)
|
||||||
# 是否完成订阅
|
# 是否完成订阅
|
||||||
if not subscribe.best_version:
|
if not subscribe.best_version:
|
||||||
# 非洗板
|
# 订阅存在待定策略,不管是否已完成,均需更新订阅信息
|
||||||
if ((no_lefts and meta.type == MediaType.TV)
|
if downloads and meta.type == MediaType.TV:
|
||||||
or (downloads and meta.type == MediaType.MOVIE)
|
|
||||||
or force):
|
|
||||||
# 完成订阅
|
|
||||||
self.__finish_subscribe(subscribe=subscribe, meta=meta, mediainfo=mediainfo)
|
|
||||||
elif downloads and meta.type == MediaType.TV:
|
|
||||||
# 电视剧更新已下载集数
|
# 电视剧更新已下载集数
|
||||||
self.__update_subscribe_note(subscribe=subscribe, downloads=downloads)
|
self.__update_subscribe_note(subscribe=subscribe, downloads=downloads)
|
||||||
# 更新订阅剩余集数和时间
|
# 更新订阅剩余集数和时间
|
||||||
self.__update_lack_episodes(lefts=lefts, subscribe=subscribe,
|
self.__update_lack_episodes(lefts=lefts, subscribe=subscribe,
|
||||||
mediainfo=mediainfo, update_date=True)
|
mediainfo=mediainfo, update_date=True)
|
||||||
|
# 判断是否需要完成订阅
|
||||||
|
if ((no_lefts and meta.type == MediaType.TV)
|
||||||
|
or (downloads and meta.type == MediaType.MOVIE)
|
||||||
|
or force):
|
||||||
|
self.__finish_subscribe(subscribe=subscribe, meta=meta, mediainfo=mediainfo)
|
||||||
else:
|
else:
|
||||||
# 未下载到内容且不完整
|
# 未下载到内容且不完整
|
||||||
logger.info(f'{mediainfo.title_year} 未下载完整,继续订阅 ...')
|
logger.info(f'{mediainfo.title_year} 未下载完整,继续订阅 ...')
|
||||||
@@ -928,29 +928,29 @@ class SubscribeChain(ChainBase, metaclass=Singleton):
|
|||||||
更新订阅剩余集数
|
更新订阅剩余集数
|
||||||
"""
|
"""
|
||||||
if not lefts:
|
if not lefts:
|
||||||
return
|
# 如果 lefts 为空,表示没有缺失集数,直接设置 lack_episode 为 0
|
||||||
mediakey = subscribe.tmdbid or subscribe.doubanid
|
lack_episode = 0
|
||||||
left_seasons = lefts.get(mediakey)
|
logger.info(f'{mediainfo.title_year} 没有缺失集数,直接更新为 0 ...')
|
||||||
if left_seasons:
|
else:
|
||||||
for season_info in left_seasons.values():
|
mediakey = subscribe.tmdbid or subscribe.doubanid
|
||||||
season = season_info.season
|
left_seasons = lefts.get(mediakey)
|
||||||
if season == subscribe.season:
|
lack_episode = 0
|
||||||
left_episodes = season_info.episodes
|
if left_seasons:
|
||||||
if not left_episodes:
|
for season_info in left_seasons.values():
|
||||||
lack_episode = season_info.total_episode
|
season = season_info.season
|
||||||
else:
|
if season == subscribe.season:
|
||||||
lack_episode = len(left_episodes)
|
left_episodes = season_info.episodes
|
||||||
logger.info(f'{mediainfo.title_year} 季 {season} 更新缺失集数为{lack_episode} ...')
|
if not left_episodes:
|
||||||
if update_date:
|
lack_episode = season_info.total_episode
|
||||||
# 同时更新最后时间
|
else:
|
||||||
self.subscribeoper.update(subscribe.id, {
|
lack_episode = len(left_episodes)
|
||||||
"lack_episode": lack_episode,
|
logger.info(f"{mediainfo.title_year} 季 {season} 更新缺失集数为{lack_episode} ...")
|
||||||
"last_update": datetime.now().strftime('%Y-%m-%d %H:%M:%S')
|
break
|
||||||
})
|
# 更新数据库
|
||||||
else:
|
update_data = {"lack_episode": lack_episode}
|
||||||
self.subscribeoper.update(subscribe.id, {
|
if update_date:
|
||||||
"lack_episode": lack_episode
|
update_data["last_update"] = datetime.now().strftime('%Y-%m-%d %H:%M:%S')
|
||||||
})
|
self.subscribeoper.update(subscribe.id, update_data)
|
||||||
|
|
||||||
def __finish_subscribe(self, subscribe: Subscribe, mediainfo: MediaInfo,
|
def __finish_subscribe(self, subscribe: Subscribe, mediainfo: MediaInfo,
|
||||||
meta: MetaBase, bestversion: bool = False):
|
meta: MetaBase, bestversion: bool = False):
|
||||||
|
|||||||
Reference in New Issue
Block a user