diff --git a/app/api/endpoints/subscribe.py b/app/api/endpoints/subscribe.py index 38bf4c0c..2e98d46e 100644 --- a/app/api/endpoints/subscribe.py +++ b/app/api/endpoints/subscribe.py @@ -99,7 +99,14 @@ def update_subscribe( # 避免更新缺失集数 subscribe_dict = subscribe_in.dict() if not subscribe_in.lack_episode: + # 没有缺失集数时,缺失集数清空,避免更新为0 subscribe_dict.pop("lack_episode") + elif subscribe_in.total_episode: + # 总集数增加时,缺失集数也要增加 + if subscribe_in.total_episode > (subscribe.total_episode or 0): + subscribe_dict["lack_episode"] = (subscribe.lack_episode + + (subscribe_in.total_episode + - (subscribe.total_episode or 0))) subscribe.update(db, subscribe_dict) return schemas.Response(success=True) diff --git a/app/core/meta/metabase.py b/app/core/meta/metabase.py index c5571fd9..a1a55224 100644 --- a/app/core/meta/metabase.py +++ b/app/core/meta/metabase.py @@ -459,28 +459,18 @@ class MetaBase(object): # 年份 if not self.year: self.year = meta.year - # 开始季 - if not self.begin_season: + # 季 + if (self.type == MediaType.TV + and not self.season): self.begin_season = meta.begin_season - # 结束季 - if not self.end_season: self.end_season = meta.end_season - # 总季数 - if self.begin_season and self.end_season: - self.total_season = (self.end_season - self.begin_season) + 1 - elif self.begin_season: - self.total_season = 1 + self.total_season = meta.total_season # 开始集 - if not self.begin_episode: + if (self.type == MediaType.TV + and not self.episode): self.begin_episode = meta.begin_episode - # 结束集 - if not self.end_episode: self.end_episode = meta.end_episode - # 总集数 - if self.begin_episode and self.end_episode: - self.total_episode = (self.end_episode - self.begin_episode) + 1 - elif self.begin_episode: - self.total_episode = 1 + self.total_episode = meta.total_episode # 版本 if not self.resource_type: self.resource_type = meta.resource_type