From ba1ca0819e5a4f2922fa5f232d1e070cbe64e985 Mon Sep 17 00:00:00 2001 From: jxxghp Date: Thu, 23 Jan 2025 13:16:32 +0800 Subject: [PATCH] =?UTF-8?q?fix=20=E5=85=B3=E6=B3=A8=E8=AE=A2=E9=98=85?= =?UTF-8?q?=E6=97=B6=E5=88=A4=E6=96=AD=E5=8E=86=E5=8F=B2=E8=AE=B0=E5=BD=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/chain/subscribe.py | 5 +++++ app/db/models/subscribehistory.py | 14 +++++++++++++- app/db/subscribe_oper.py | 13 +++++++++++++ version.py | 2 +- 4 files changed, 32 insertions(+), 2 deletions(-) diff --git a/app/chain/subscribe.py b/app/chain/subscribe.py index 87ef9a68..bd97af1b 100644 --- a/app/chain/subscribe.py +++ b/app/chain/subscribe.py @@ -798,6 +798,11 @@ class SubscribeChain(ChainBase, metaclass=Singleton): doubanid=share_sub.get("doubanid"), season=share_sub.get("season")): continue + # 已经订阅过跳过 + if self.subscribeoper.exist_history(tmdbid=share_sub.get("tmdbid"), + doubanid=share_sub.get("doubanid"), + season=share_sub.get("season")): + continue # 去除无效属性 for key in list(share_sub.keys()): if not hasattr(schemas.Subscribe(), key): diff --git a/app/db/models/subscribehistory.py b/app/db/models/subscribehistory.py index 9a19a397..7c95e1e2 100644 --- a/app/db/models/subscribehistory.py +++ b/app/db/models/subscribehistory.py @@ -73,6 +73,18 @@ class SubscribeHistory(Base): result = db.query(SubscribeHistory).filter( SubscribeHistory.type == mtype ).order_by( - SubscribeHistory.date.desc() + SubscribeHistory.date.desc() ).offset((page - 1) * count).limit(count).all() return list(result) + + @staticmethod + @db_query + def exists(db: Session, tmdbid: int = None, doubanid: str = None, season: int = None): + if tmdbid: + if season: + return db.query(SubscribeHistory).filter(SubscribeHistory.tmdbid == tmdbid, + SubscribeHistory.season == season).first() + return db.query(SubscribeHistory).filter(SubscribeHistory.tmdbid == tmdbid).first() + elif doubanid: + return db.query(SubscribeHistory).filter(SubscribeHistory.doubanid == doubanid).first() + return None diff --git a/app/db/subscribe_oper.py b/app/db/subscribe_oper.py index a9ff5445..73ad31c2 100644 --- a/app/db/subscribe_oper.py +++ b/app/db/subscribe_oper.py @@ -118,3 +118,16 @@ class SubscribeOper(DbOper): kwargs.pop("id") subscribe = SubscribeHistory(**kwargs) subscribe.create(self._db) + + def exist_history(self, tmdbid: int = None, doubanid: str = None, season: int = None): + """ + 判断是否存在订阅历史 + """ + if tmdbid: + if season: + return True if SubscribeHistory.exists(self._db, tmdbid=tmdbid, season=season) else False + else: + return True if SubscribeHistory.exists(self._db, tmdbid=tmdbid) else False + elif doubanid: + return True if SubscribeHistory.exists(self._db, doubanid=doubanid) else False + return False diff --git a/version.py b/version.py index 71716da5..5eb6f236 100644 --- a/version.py +++ b/version.py @@ -1,2 +1,2 @@ -APP_VERSION = 'v2.2.4' +APP_VERSION = 'v2.2.4-1' FRONTEND_VERSION = 'v2.2.4'