diff --git a/app/api/endpoints/subscribe.py b/app/api/endpoints/subscribe.py index e16c8d76..6e884574 100644 --- a/app/api/endpoints/subscribe.py +++ b/app/api/endpoints/subscribe.py @@ -75,23 +75,12 @@ def create_subscribe( title = subscribe_in.name else: title = None + # 订阅用户 + subscribe_in.username = current_user.name sid, message = SubscribeChain().add(mtype=mtype, title=title, - year=subscribe_in.year, - tmdbid=subscribe_in.tmdbid, - season=subscribe_in.season, - doubanid=subscribe_in.doubanid, - bangumiid=subscribe_in.bangumiid, - mediaid=subscribe_in.mediaid, - episode_group=subscribe_in.episode_group, - username=current_user.name, - best_version=subscribe_in.best_version, - save_path=subscribe_in.save_path, - search_imdbid=subscribe_in.search_imdbid, - custom_words=subscribe_in.custom_words, - media_category=subscribe_in.media_category, - filter_groups=subscribe_in.filter_groups, - exist_ok=True) + exist_ok=True, + **subscribe_in.dict()) return schemas.Response( success=bool(sid), message=message, data={"id": sid} ) diff --git a/app/chain/subscribe.py b/app/chain/subscribe.py index f3888a0f..62abde17 100644 --- a/app/chain/subscribe.py +++ b/app/chain/subscribe.py @@ -212,6 +212,7 @@ class SubscribeChain(ChainBase, metaclass=Singleton): 'filter_groups': self.__get_default_subscribe_config(mediainfo.type, "filter_groups") if not kwargs.get( "filter_groups") else kwargs.get("filter_groups") }) + # 操作数据库 sid, err_msg = self.subscribeoper.add(mediainfo=mediainfo, season=season, username=username, **kwargs) if not sid: logger.error(f'{mediainfo.title_year} {err_msg}') diff --git a/app/db/subscribe_oper.py b/app/db/subscribe_oper.py index bafc67de..1204b90d 100644 --- a/app/db/subscribe_oper.py +++ b/app/db/subscribe_oper.py @@ -20,22 +20,24 @@ class SubscribeOper(DbOper): tmdbid=mediainfo.tmdb_id, doubanid=mediainfo.douban_id, season=kwargs.get('season')) + kwargs.update({ + "name": mediainfo.title, + "year": mediainfo.year, + "type": mediainfo.type.value, + "tmdbid": mediainfo.tmdb_id, + "imdbid": mediainfo.imdb_id, + "tvdbid": mediainfo.tvdb_id, + "doubanid": mediainfo.douban_id, + "bangumiid": mediainfo.bangumi_id, + "episode_group": mediainfo.episode_group, + "poster": mediainfo.get_poster_image(), + "backdrop": mediainfo.get_backdrop_image(), + "vote": mediainfo.vote_average, + "description": mediainfo.overview, + "date": time.strftime("%Y-%m-%d %H:%M:%S", time.localtime()) + }) if not subscribe: - subscribe = Subscribe(name=mediainfo.title, - year=mediainfo.year, - type=mediainfo.type.value, - tmdbid=mediainfo.tmdb_id, - imdbid=mediainfo.imdb_id, - tvdbid=mediainfo.tvdb_id, - doubanid=mediainfo.douban_id, - bangumiid=mediainfo.bangumi_id, - episode_group=mediainfo.episode_group, - poster=mediainfo.get_poster_image(), - backdrop=mediainfo.get_backdrop_image(), - vote=mediainfo.vote_average, - description=mediainfo.overview, - date=time.strftime("%Y-%m-%d %H:%M:%S", time.localtime()), - **kwargs) + subscribe = Subscribe(**kwargs) subscribe.create(self._db) # 查询订阅 subscribe = Subscribe.exists(self._db, diff --git a/app/schemas/subscribe.py b/app/schemas/subscribe.py index 1b691e34..2129ee58 100644 --- a/app/schemas/subscribe.py +++ b/app/schemas/subscribe.py @@ -74,7 +74,7 @@ class Subscribe(BaseModel): # 过滤规则组 filter_groups: Optional[List[str]] = Field(default_factory=list) # 剧集组 - episode_group: str = None + episode_group: Optional[str] = None class Config: orm_mode = True