Skip to content

Commit 0428002

Browse files
committed
fix 动漫分类
1 parent 355dad9 commit 0428002

File tree

7 files changed

+21
-49
lines changed

7 files changed

+21
-49
lines changed

app/chain/__init__.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -512,7 +512,7 @@ def scrape_metadata(self, path: Path, mediainfo: MediaInfo, transfer_type: str,
512512
def media_category(self) -> Optional[Dict[str, list]]:
513513
"""
514514
获取媒体分类
515-
:return: 获取二级分类配置字典项,需包括电影、电视剧、动漫
515+
:return: 获取二级分类配置字典项,需包括电影、电视剧
516516
"""
517517
return self.run_module("media_category")
518518

app/chain/transfer.py

+6-9
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@
1616
from app.db.models.transferhistory import TransferHistory
1717
from app.db.systemconfig_oper import SystemConfigOper
1818
from app.db.transferhistory_oper import TransferHistoryOper
19+
from app.helper.directory import DirectoryHelper
1920
from app.helper.format import FormatParser
2021
from app.helper.progress import ProgressHelper
2122
from app.log import logger
@@ -41,6 +42,7 @@ def __init__(self):
4142
self.mediachain = MediaChain()
4243
self.tmdbchain = TmdbChain()
4344
self.systemconfig = SystemConfigOper()
45+
self.directoryhelper = DirectoryHelper()
4446

4547
def process(self) -> bool:
4648
"""
@@ -625,8 +627,7 @@ def send_transfer_message(self, meta: MetaBase, mediainfo: MediaInfo,
625627
mtype=NotificationType.Organize,
626628
title=msg_title, text=msg_str, image=mediainfo.get_message_image()))
627629

628-
@staticmethod
629-
def delete_files(path: Path) -> Tuple[bool, str]:
630+
def delete_files(self, path: Path) -> Tuple[bool, str]:
630631
"""
631632
删除转移后的文件以及空目录
632633
:param path: 文件路径
@@ -657,16 +658,12 @@ def delete_files(path: Path) -> Tuple[bool, str]:
657658
# 判断当前媒体父路径下是否有媒体文件,如有则无需遍历父级
658659
if not SystemUtils.exits_files(path.parent, settings.RMT_MEDIAEXT):
659660
# 媒体库二级分类根路径
660-
library_root_names = [
661-
settings.LIBRARY_MOVIE_NAME or '电影',
662-
settings.LIBRARY_TV_NAME or '电视剧',
663-
settings.LIBRARY_ANIME_NAME or '动漫',
664-
]
665-
661+
library_roots = self.directoryhelper.get_library_dirs()
662+
library_root_names = [Path(library_root.path).name for library_root in library_roots if library_root.path]
666663
# 判断父目录是否为空, 为空则删除
667664
for parent_path in path.parents:
668665
# 遍历父目录到媒体库二级分类根路径
669-
if str(parent_path.name) in library_root_names:
666+
if parent_path.name in library_root_names:
670667
break
671668
if str(parent_path.parent) != str(path.root):
672669
# 父目录非根目录,才删除父目录

app/helper/directory.py

+2-8
Original file line numberDiff line numberDiff line change
@@ -41,10 +41,7 @@ def get_download_dir(self, media: MediaInfo = None) -> Optional[schemas.MediaDir
4141
:param media: 媒体信息
4242
"""
4343
# 处理类型
44-
if media and media.genre_ids \
45-
and set(media.genre_ids).intersection(set(settings.ANIME_GENREIDS)):
46-
media_type = "动漫"
47-
elif media:
44+
if media:
4845
media_type = media.type.value
4946
else:
5047
media_type = MediaType.UNKNOWN.value
@@ -72,10 +69,7 @@ def get_library_dir(self, media: MediaInfo = None, in_path: Path = None) -> Opti
7269
:param in_path: 源目录
7370
"""
7471
# 处理类型
75-
if media and media.genre_ids \
76-
and set(media.genre_ids).intersection(set(settings.ANIME_GENREIDS)):
77-
media_type = "动漫"
78-
elif media:
72+
if media:
7973
media_type = media.type.value
8074
else:
8175
media_type = MediaType.UNKNOWN.value

app/modules/themoviedb/__init__.py

+3-4
Original file line numberDiff line numberDiff line change
@@ -228,12 +228,11 @@ def tmdb_info(self, tmdbid: int, mtype: MediaType) -> Optional[dict]:
228228
def media_category(self) -> Optional[Dict[str, list]]:
229229
"""
230230
获取媒体分类
231-
:return: 获取二级分类配置字典项,需包括电影、电视剧、动漫
231+
:return: 获取二级分类配置字典项,需包括电影、电视剧
232232
"""
233233
return {
234-
"电影": list(self.category.movie_categorys),
235-
"电视剧": list(self.category.tv_categorys),
236-
"动漫": list(self.category.anime_categorys)
234+
MediaType.MOVIE.value: list(self.category.movie_categorys),
235+
MediaType.TV.value: list(self.category.tv_categorys)
237236
}
238237

239238
def search_medias(self, meta: MetaBase) -> Optional[List[MediaInfo]]:

app/modules/themoviedb/category.py

-15
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,6 @@ class CategoryHelper(metaclass=Singleton):
1515
_categorys = {}
1616
_movie_categorys = {}
1717
_tv_categorys = {}
18-
_anime_categorys = {}
1918

2019
def __init__(self):
2120
self._category_path: Path = settings.CONFIG_PATH / "category.yaml"
@@ -44,7 +43,6 @@ def init(self):
4443
if self._categorys:
4544
self._movie_categorys = self._categorys.get('movie')
4645
self._tv_categorys = self._categorys.get('tv')
47-
self._anime_categorys = self._categorys.get('anime')
4846
logger.info(f"已加载二级分类策略 category.yaml")
4947

5048
@property
@@ -83,15 +81,6 @@ def tv_categorys(self) -> list:
8381
return []
8482
return self._tv_categorys.keys()
8583

86-
@property
87-
def anime_categorys(self) -> list:
88-
"""
89-
获取动漫分类清单
90-
"""
91-
if not self._anime_categorys:
92-
return []
93-
return self._anime_categorys.keys()
94-
9584
def get_movie_category(self, tmdb_info) -> str:
9685
"""
9786
判断电影的分类
@@ -106,10 +95,6 @@ def get_tv_category(self, tmdb_info) -> str:
10695
:param tmdb_info: 识别的TMDB中的信息
10796
:return: 二级分类的名称
10897
"""
109-
genre_ids = tmdb_info.get("genre_ids") or []
110-
if self._anime_categorys and genre_ids \
111-
and set(genre_ids).intersection(set(settings.ANIME_GENREIDS)):
112-
return self.get_category(self._anime_categorys, tmdb_info)
11398
return self.get_category(self._tv_categorys, tmdb_info)
11499

115100
@staticmethod

app/modules/themoviedb/tmdbapi.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -530,7 +530,7 @@ def get_info(self,
530530
tmdbid: int) -> dict:
531531
"""
532532
给定TMDB号,查询一条媒体信息
533-
:param mtype: 类型:电影、电视剧、动漫,为空时都查(此时用不上年份)
533+
:param mtype: 类型:电影、电视剧,为空时都查(此时用不上年份)
534534
:param tmdbid: TMDB的ID,有tmdbid时优先使用tmdbid,否则使用年份和标题
535535
"""
536536

config/category.yaml

+8-11
Original file line numberDiff line numberDiff line change
@@ -23,9 +23,16 @@ movie:
2323
# 配置电视剧的分类策略
2424
tv:
2525
# 分类名同时也是目录名
26-
动漫:
26+
国漫:
27+
# 匹配 genre_ids 内容类型,16是动漫
28+
genre_ids: '16'
29+
# 匹配 origin_country 国家,CN是中国大陆,TW是中国台湾,HK是中国香港
30+
origin_country: 'CN,TW,HK'
31+
日番:
2732
# 匹配 genre_ids 内容类型,16是动漫
2833
genre_ids: '16'
34+
# 匹配 origin_country 国家,JP是日本
35+
origin_country: 'JP'
2936
纪录片:
3037
# 匹配 genre_ids 内容类型,99是纪录片
3138
genre_ids: '99'
@@ -47,16 +54,6 @@ tv:
4754
# 未匹配以上分类,则命名为未分类
4855
未分类:
4956

50-
# 配置动漫的分类策略
51-
anime:
52-
国漫:
53-
# 匹配 origin_country 国家,CN是中国大陆,TW是中国台湾,HK是中国香港
54-
origin_country: 'CN,TW,HK'
55-
日番:
56-
# 匹配 origin_country 国家,JP是日本
57-
origin_country: 'JP'
58-
未分类:
59-
6057
## genre_ids 内容类型 字典,注意部分中英文是不一样的
6158
# 28 Action
6259
# 12 Adventure

0 commit comments

Comments
 (0)