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"]: