diff --git a/app/chain/transfer.py b/app/chain/transfer.py index 444c72ae..1899b002 100644 --- a/app/chain/transfer.py +++ b/app/chain/transfer.py @@ -244,7 +244,8 @@ class TransferChain(ChainBase): continue # 如果未开启新增已入库媒体是否跟随TMDB信息变化则根据tmdbid查询之前的title if not settings.SCRAP_FOLLOW_TMDB: - transfer_historys = self.transferhis.get_by(tmdbid=str(mediainfo.tmdb_id)) + transfer_historys = self.transferhis.get_by(tmdbid=mediainfo.tmdb_id, + type=mediainfo.type.value) if transfer_historys: mediainfo.title = transfer_historys[0].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 dd8eb392..2777ad40 100644 --- a/app/db/models/transferhistory.py +++ b/app/db/models/transferhistory.py @@ -85,11 +85,14 @@ class TransferHistory(Base): return db.query(func.count(TransferHistory.id)).filter(TransferHistory.title.like(f'%{title}%')).first()[0] @staticmethod - def list_by(db: Session, title: str = None, year: int = None, season: str = None, + def list_by(db: Session, type: str = None, title: str = None, year: int = None, season: str = None, episode: str = None, tmdbid: str = None): """ 据tmdbid、season、season_episode查询转移记录 """ + if tmdbid and type: + return db.query(TransferHistory).filter(TransferHistory.tmdbid == tmdbid, + TransferHistory.type == type).all() if tmdbid and not season and not episode: return db.query(TransferHistory).filter(TransferHistory.tmdbid == tmdbid).all() if tmdbid and season and not episode: diff --git a/app/db/transferhistory_oper.py b/app/db/transferhistory_oper.py index 3c5e6688..e04bf4c7 100644 --- a/app/db/transferhistory_oper.py +++ b/app/db/transferhistory_oper.py @@ -51,12 +51,13 @@ class TransferHistoryOper(DbOper): """ return TransferHistory.statistic(self._db, days) - def get_by(self, title: str = None, year: str = None, - season: str = None, episode: str = None, tmdbid: str = None) -> List[TransferHistory]: + def get_by(self, title: str = None, year: str = None, type: str = None, + season: str = None, episode: str = None, tmdbid: int = None) -> List[TransferHistory]: """ 按类型、标题、年份、季集查询转移记录 """ return TransferHistory.list_by(db=self._db, + type=type, title=title, year=year, season=season, diff --git a/app/plugins/dirmonitor/__init__.py b/app/plugins/dirmonitor/__init__.py index 5f7f8671..73887bd5 100644 --- a/app/plugins/dirmonitor/__init__.py +++ b/app/plugins/dirmonitor/__init__.py @@ -263,7 +263,8 @@ class DirMonitor(_PluginBase): # 如果未开启新增已入库媒体是否跟随TMDB信息变化则根据tmdbid查询之前的title if not settings.SCRAP_FOLLOW_TMDB: - transfer_historys = self.transferhis.get_by(tmdbid=str(mediainfo.tmdb_id)) + transfer_historys = self.transferhis.get_by(tmdbid=mediainfo.tmdb_id, + type=mediainfo.type.value) if transfer_historys: mediainfo.title = transfer_historys[0].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 f963a152..d6bee73a 100644 --- a/app/plugins/libraryscraper/__init__.py +++ b/app/plugins/libraryscraper/__init__.py @@ -309,7 +309,8 @@ class LibraryScraper(_PluginBase): continue # 如果未开启新增已入库媒体是否跟随TMDB信息变化则根据tmdbid查询之前的title if not settings.SCRAP_FOLLOW_TMDB: - transfer_historys = self.transferhis.get_by(tmdbid=str(mediainfo.tmdb_id)) + transfer_historys = self.transferhis.get_by(tmdbid=mediainfo.tmdb_id, + type=mediainfo.type.value) if transfer_historys: mediainfo.title = transfer_historys[0].title # 开始刮削