Merge pull request #305 from thsrite/main

feat 动漫一级分类 && fix bugs
This commit is contained in:
jxxghp
2023-08-28 12:54:55 +08:00
committed by GitHub
8 changed files with 31 additions and 5 deletions

View File

@ -113,12 +113,22 @@ class DownloadChain(ChainBase):
if _media.type == MediaType.MOVIE:
download_dir = Path(settings.DOWNLOAD_MOVIE_PATH or settings.DOWNLOAD_PATH) / _media.category
else:
download_dir = Path(settings.DOWNLOAD_TV_PATH or settings.DOWNLOAD_PATH) / _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
elif _media:
if _media.type == MediaType.MOVIE:
download_dir = Path(settings.DOWNLOAD_MOVIE_PATH or settings.DOWNLOAD_PATH)
else:
download_dir = Path(settings.DOWNLOAD_TV_PATH or settings.DOWNLOAD_PATH)
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)
else:
download_dir = Path(settings.DOWNLOAD_PATH)
else:

View File

@ -123,6 +123,8 @@ class Settings(BaseSettings):
DOWNLOAD_MOVIE_PATH: str = None
# 电视剧下载保存目录,容器内映射路径需要一致
DOWNLOAD_TV_PATH: str = None
# 动漫下载保存目录,容器内映射路径需要一致
DOWNLOAD_ANIME_PATH: str = None
# 下载目录二级分类
DOWNLOAD_CATEGORY: bool = False
# 下载站点字幕
@ -163,8 +165,12 @@ class Settings(BaseSettings):
LIBRARY_MOVIE_NAME: str = None
# 电视剧媒体库目录名,默认"电视剧"
LIBRARY_TV_NAME: str = None
# 动漫媒体库目录名,默认"电视剧/动漫"
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 %}" \

View File

@ -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 = []

View File

@ -371,6 +371,8 @@ class MetaVideo(MetaBase):
self.type = MediaType.TV
elif token.upper() == "SEASON" and self.begin_season is None:
self._last_token_type = "SEASON"
elif self.type == MediaType.TV and self.begin_season is None:
self.begin_season = 1
def __init_episode(self, token: str):
re_res = re.findall(r"%s" % self._episode_re, token, re.IGNORECASE)

View File

@ -354,7 +354,11 @@ class FileTransferModule(_ModuleBase):
target_dir = target_dir / mediainfo.type.value / mediainfo.category
if mediainfo.type == MediaType.TV:
if settings.LIBRARY_TV_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:
# 目的目录加上类型和二级分类

View File

@ -219,6 +219,7 @@ class Qbittorrent(metaclass=Singleton):
is_paused=is_paused,
tags=tags,
use_auto_torrent_management=is_auto,
is_sequential_download=True,
cookie=cookie)
return True if qbc_ret and str(qbc_ret).find("Ok") != -1 else False
except Exception as err:

View File

@ -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
# 流行度