diff --git a/app/db/models/transferhistory.py b/app/db/models/transferhistory.py index c9334b8d..a92e59ad 100644 --- a/app/db/models/transferhistory.py +++ b/app/db/models/transferhistory.py @@ -85,7 +85,7 @@ class TransferHistory(Base): return db.query(func.count(TransferHistory.id)).filter(TransferHistory.title.like(f'%{title}%')).first()[0] @staticmethod - def list_by(db: Session, mtype: str = None, title: str = None, year: int = None, season: str = None, + def list_by(db: Session, title: str = None, year: int = None, season: str = None, episode: str = None, tmdbid: str = None): """ 据tmdbid、season、season_episode查询转移记录 @@ -101,19 +101,16 @@ class TransferHistory(Base): TransferHistory.episodes == episode).all() # 电视剧所有季集|电影 if not season and not episode: - return db.query(TransferHistory).filter(TransferHistory.type == mtype, - TransferHistory.title == title, + return db.query(TransferHistory).filter(TransferHistory.title == title, TransferHistory.year == year).all() # 电视剧某季 if season and not episode: - return db.query(TransferHistory).filter(TransferHistory.type == mtype, - TransferHistory.title == title, + return db.query(TransferHistory).filter(TransferHistory.title == title, TransferHistory.year == year, TransferHistory.seasons == season).all() # 电视剧某季某集 if season and episode: - return db.query(TransferHistory).filter(TransferHistory.type == mtype, - TransferHistory.title == title, + return db.query(TransferHistory).filter(TransferHistory.title == title, TransferHistory.year == year, TransferHistory.seasons == season, TransferHistory.episodes == episode).all() diff --git a/app/db/transferhistory_oper.py b/app/db/transferhistory_oper.py index ff701c6a..529600e1 100644 --- a/app/db/transferhistory_oper.py +++ b/app/db/transferhistory_oper.py @@ -50,13 +50,12 @@ class TransferHistoryOper(DbOper): """ return TransferHistory.statistic(self._db, days) - def get_by(self, mtype: str = None, title: str = None, year: str = None, + def get_by(self, title: str = None, year: str = None, season: str = None, episode: str = None, tmdbid: str = None) -> Any: """ 按类型、标题、年份、季集查询转移记录 """ return TransferHistory.list_by(db=self._db, - mtype=mtype, title=title, year=year, season=season, diff --git a/app/plugins/mediasyncdel/__init__.py b/app/plugins/mediasyncdel/__init__.py index 70b5edb0..9c968721 100644 --- a/app/plugins/mediasyncdel/__init__.py +++ b/app/plugins/mediasyncdel/__init__.py @@ -493,14 +493,17 @@ class MediaSyncDel(_PluginBase): logger.error(f"{media_name} 季同步删除失败,未获取到具体季") return msg = f'剧集 {media_name} S{season_num} {tmdb_id}' - transfer_history: List[TransferHistory] = self._transferhis.get_by(tmdbid=tmdb_id) + transfer_history: List[TransferHistory] = self._transferhis.get_by(tmdbid=tmdb_id, + season=f'S{season_num}') # 删除剧集S02E02 elif media_type == "Episode": if not season_num or not str(season_num).isdigit() or not episode_num or not str(episode_num).isdigit(): logger.error(f"{media_name} 集同步删除失败,未获取到具体集") return msg = f'剧集 {media_name} S{season_num}E{episode_num} {tmdb_id}' - transfer_history: List[TransferHistory] = self._transferhis.get_by(tmdbid=tmdb_id) + transfer_history: List[TransferHistory] = self._transferhis.get_by(tmdbid=tmdb_id, + season=f'S{season_num}', + episode=f'E{episode_num}') else: return @@ -620,30 +623,29 @@ class MediaSyncDel(_PluginBase): if media_type == "Movie": msg = f'电影 {media_name}' transfer_history: List[TransferHistory] = self._transferhis.get_by( - mtype="电影", title=media_name, year=media_year) # 删除电视剧 elif media_type == "Series": msg = f'剧集 {media_name}' transfer_history: List[TransferHistory] = self._transferhis.get_by( - mtype="电视剧", title=media_name, year=media_year) # 删除季 S02 elif media_type == "Season": msg = f'剧集 {media_name} {media_season}' transfer_history: List[TransferHistory] = self._transferhis.get_by( - mtype="电视剧", title=media_name, - year=media_year) + year=media_year, + season=media_season) # 删除剧集S02E02 elif media_type == "Episode": msg = f'剧集 {media_name} {media_season}{media_episode}' transfer_history: List[TransferHistory] = self._transferhis.get_by( - mtype="电视剧", title=media_name, - year=media_year) + year=media_year, + season=media_season, + episode=media_episode) else: continue