diff --git a/app/chain/download.py b/app/chain/download.py index 0ec58973..feb2a964 100644 --- a/app/chain/download.py +++ b/app/chain/download.py @@ -113,7 +113,9 @@ class DownloadChain(ChainBase): if _media.type == MediaType.MOVIE: download_dir = Path(settings.DOWNLOAD_MOVIE_PATH or settings.DOWNLOAD_PATH) / _media.category else: - if settings.DOWNLOAD_ANIME_PATH and _media.category and str(_media.category) == '动漫': + media_genrs_ids = _media.tmdb_info.get("genre_ids") + if settings.DOWNLOAD_ANIME_PATH and media_genrs_ids and set(media_genrs_ids).intersection( + set(settings.ANIME_GENREIDS)): download_dir = Path(settings.DOWNLOAD_ANIME_PATH) else: download_dir = Path(settings.DOWNLOAD_TV_PATH or settings.DOWNLOAD_PATH) / _media.category @@ -121,7 +123,9 @@ class DownloadChain(ChainBase): if _media.type == MediaType.MOVIE: download_dir = Path(settings.DOWNLOAD_MOVIE_PATH or settings.DOWNLOAD_PATH) else: - if settings.DOWNLOAD_ANIME_PATH and _media.category and str(_media.category) == '动漫': + media_genrs_ids = _media.tmdb_info.get("genre_ids") + if settings.DOWNLOAD_ANIME_PATH and media_genrs_ids and set(media_genrs_ids).intersection( + set(settings.ANIME_GENREIDS)): download_dir = Path(settings.DOWNLOAD_ANIME_PATH) else: download_dir = Path(settings.DOWNLOAD_TV_PATH or settings.DOWNLOAD_PATH) diff --git a/app/core/config.py b/app/core/config.py index c9ddc4ad..4ed6d8ed 100644 --- a/app/core/config.py +++ b/app/core/config.py @@ -167,6 +167,8 @@ class Settings(BaseSettings): LIBRARY_ANIME_NAME: str = None # 二级分类 LIBRARY_CATEGORY: bool = True + # 电视剧动漫的分类genre_ids + ANIME_GENREIDS = [16] # 电影重命名格式 MOVIE_RENAME_FORMAT: str = "{{title}}{% if year %} ({{year}}){% endif %}" \ "/{{title}}{% if year %} ({{year}}){% endif %}{% if part %}-{{part}}{% endif %}{% if videoFormat %} - {{videoFormat}}{% endif %}" \ diff --git a/app/core/context.py b/app/core/context.py index 758f3684..c5043514 100644 --- a/app/core/context.py +++ b/app/core/context.py @@ -549,14 +549,13 @@ class MediaInfo: dicts["type"] = self.type.value if self.type else None dicts["detail_link"] = self.detail_link dicts["title_year"] = self.title_year - dicts["tmdb_info"]["media_type"] = self.type.value if self.type else None + dicts["tmdb_info"] = self.tmdb_info if self.tmdb_info else None return dicts def clear(self): """ 去除多余数据,减小体积 """ - self.tmdb_info = {} self.douban_info = {} self.seasons = {} self.genres = [] diff --git a/app/modules/filetransfer/__init__.py b/app/modules/filetransfer/__init__.py index 8205df0d..728d04d7 100644 --- a/app/modules/filetransfer/__init__.py +++ b/app/modules/filetransfer/__init__.py @@ -354,8 +354,10 @@ class FileTransferModule(_ModuleBase): target_dir = target_dir / mediainfo.type.value / mediainfo.category if mediainfo.type == MediaType.TV: - if settings.LIBRARY_ANIME_NAME: - target_dir = target_dir / settings.LIBRARY_ANIME_NAME + media_genrs_ids = mediainfo.tmdb_info.get("genre_ids") + if settings.LIBRARY_ANIME_NAME and media_genrs_ids and set(media_genrs_ids).intersection( + set(settings.ANIME_GENREIDS)): + target_dir = target_dir / settings.LIBRARY_ANIME_NAME / mediainfo.category elif settings.LIBRARY_TV_NAME: target_dir = target_dir / settings.LIBRARY_TV_NAME / mediainfo.category else: diff --git a/app/schemas/context.py b/app/schemas/context.py index 7af01b17..75c5a8c1 100644 --- a/app/schemas/context.py +++ b/app/schemas/context.py @@ -146,6 +146,8 @@ class MediaInfo(BaseModel): status: Optional[str] = None # 标签 tagline: Optional[str] = None + # TMDB INFO + tmdb_info: Optional[dict] = {} # 评价数量 vote_count: Optional[int] = 0 # 流行度