From 0cb75d689cabf480155abe289ecc2e15aece22c2 Mon Sep 17 00:00:00 2001 From: thsrite Date: Tue, 12 Sep 2023 15:28:21 +0800 Subject: [PATCH] =?UTF-8?q?fix=20=E6=A0=B9=E6=8D=AEtype=E5=92=8Ctmdbid?= =?UTF-8?q?=E6=9F=A5=E8=AF=A2=E8=BD=AC=E7=A7=BB=E8=AE=B0=E5=BD=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/chain/transfer.py | 8 ++++---- app/db/models/transferhistory.py | 8 ++++++++ app/db/transferhistory_oper.py | 8 ++++++++ app/plugins/dirmonitor/__init__.py | 8 ++++---- app/plugins/libraryscraper/__init__.py | 8 ++++---- 5 files changed, 28 insertions(+), 12 deletions(-) diff --git a/app/chain/transfer.py b/app/chain/transfer.py index 2e210072..e2126b39 100644 --- a/app/chain/transfer.py +++ b/app/chain/transfer.py @@ -253,10 +253,10 @@ class TransferChain(ChainBase): # 如果未开启新增已入库媒体是否跟随TMDB信息变化则根据tmdbid查询之前的title if not settings.SCRAP_FOLLOW_TMDB: - transfer_historys = self.transferhis.get_by(tmdbid=file_mediainfo.tmdb_id, - mtype=file_mediainfo.type.value) - if transfer_historys: - file_mediainfo.title = transfer_historys[0].title + transfer_history = self.transferhis.get_by_type_tmdbid(tmdbid=file_mediainfo.tmdb_id, + mtype=file_mediainfo.type.value) + if transfer_history: + file_mediainfo.title = transfer_history.title logger.info(f"{file_path.name} 识别为:{file_mediainfo.type.value} {file_mediainfo.title_year}") diff --git a/app/db/models/transferhistory.py b/app/db/models/transferhistory.py index d0f1e98d..88e172bb 100644 --- a/app/db/models/transferhistory.py +++ b/app/db/models/transferhistory.py @@ -134,6 +134,14 @@ class TransferHistory(Base): return [] + @staticmethod + def get_by_type_tmdbid(db: Session, mtype: str = None, tmdbid: int = None): + """ + 据tmdbid、type查询转移记录 + """ + return db.query(TransferHistory).filter(TransferHistory.tmdbid == tmdbid, + TransferHistory.type == mtype).first() + @staticmethod def update_download_hash(db: Session, historyid: int = None, download_hash: str = None): db.query(TransferHistory).filter(TransferHistory.id == historyid).update( diff --git a/app/db/transferhistory_oper.py b/app/db/transferhistory_oper.py index 95dc3db4..98902841 100644 --- a/app/db/transferhistory_oper.py +++ b/app/db/transferhistory_oper.py @@ -65,6 +65,14 @@ class TransferHistoryOper(DbOper): episode=episode, tmdbid=tmdbid) + def get_by_type_tmdbid(self, mtype: str = None, tmdbid: int = None) -> TransferHistory: + """ + 按类型、tmdb查询转移记录 + """ + return TransferHistory.get_by_type_tmdbid(db=self._db, + mtype=mtype, + tmdbid=tmdbid) + def delete(self, historyid): """ 删除转移记录 diff --git a/app/plugins/dirmonitor/__init__.py b/app/plugins/dirmonitor/__init__.py index 65c04190..bc4cacd2 100644 --- a/app/plugins/dirmonitor/__init__.py +++ b/app/plugins/dirmonitor/__init__.py @@ -270,10 +270,10 @@ class DirMonitor(_PluginBase): # 如果未开启新增已入库媒体是否跟随TMDB信息变化则根据tmdbid查询之前的title if not settings.SCRAP_FOLLOW_TMDB: - transfer_historys = self.transferhis.get_by(tmdbid=mediainfo.tmdb_id, - mtype=mediainfo.type.value) - if transfer_historys: - mediainfo.title = transfer_historys[0].title + transfer_history = self.transferhis.get_by_type_tmdbid(tmdbid=mediainfo.tmdb_id, + mtype=mediainfo.type.value) + if transfer_history: + mediainfo.title = transfer_history.title logger.info(f"{file_path.name} 识别为:{mediainfo.type.value} {mediainfo.title_year}") # 更新媒体图片 diff --git a/app/plugins/libraryscraper/__init__.py b/app/plugins/libraryscraper/__init__.py index 9738cb94..d3033446 100644 --- a/app/plugins/libraryscraper/__init__.py +++ b/app/plugins/libraryscraper/__init__.py @@ -354,10 +354,10 @@ class LibraryScraper(_PluginBase): # 如果未开启新增已入库媒体是否跟随TMDB信息变化则根据tmdbid查询之前的title if not settings.SCRAP_FOLLOW_TMDB: - transfer_historys = self.transferhis.get_by(tmdbid=mediainfo.tmdb_id, - mtype=mediainfo.type.value) - if transfer_historys: - mediainfo.title = transfer_historys[0].title + transfer_history = self.transferhis.get_by_type_tmdbid(tmdbid=mediainfo.tmdb_id, + mtype=mediainfo.type.value) + if transfer_history: + mediainfo.title = transfer_history.title # 覆盖模式时,提前删除nfo if self._mode in ["force_all", "force_nfo"]: