feat: english title from tmdb
This commit is contained in:
parent
59acda5dec
commit
89a8625817
@ -129,6 +129,7 @@ MoviePilot需要配套下载器和媒体服务器配合使用。
|
|||||||
`MOVIE_RENAME_FORMAT`支持的配置项:
|
`MOVIE_RENAME_FORMAT`支持的配置项:
|
||||||
|
|
||||||
> `title`: TMDB/豆瓣中的标题
|
> `title`: TMDB/豆瓣中的标题
|
||||||
|
> `en_title`: TMDB中的英文标题 (暂不支持豆瓣)
|
||||||
> `original_title`: TMDB/豆瓣中的原语种标题
|
> `original_title`: TMDB/豆瓣中的原语种标题
|
||||||
> `name`: 从文件名中识别的名称(同时存在中英文时,优先使用中文)
|
> `name`: 从文件名中识别的名称(同时存在中英文时,优先使用中文)
|
||||||
> `en_name`:从文件名中识别的英文名称(可能为空)
|
> `en_name`:从文件名中识别的英文名称(可能为空)
|
||||||
|
@ -135,6 +135,8 @@ class MediaInfo:
|
|||||||
type: MediaType = None
|
type: MediaType = None
|
||||||
# 媒体标题
|
# 媒体标题
|
||||||
title: str = None
|
title: str = None
|
||||||
|
# 英文标题
|
||||||
|
en_title: str = None
|
||||||
# 年份
|
# 年份
|
||||||
year: str = None
|
year: str = None
|
||||||
# 季
|
# 季
|
||||||
@ -368,6 +370,8 @@ class MediaInfo:
|
|||||||
self.genre_ids = info.get('genre_ids') or []
|
self.genre_ids = info.get('genre_ids') or []
|
||||||
# 原语种
|
# 原语种
|
||||||
self.original_language = info.get('original_language')
|
self.original_language = info.get('original_language')
|
||||||
|
# 英文标题
|
||||||
|
self.en_title = info.get('en_title')
|
||||||
if self.type == MediaType.MOVIE:
|
if self.type == MediaType.MOVIE:
|
||||||
# 标题
|
# 标题
|
||||||
self.title = info.get('title')
|
self.title = info.get('title')
|
||||||
@ -439,6 +443,9 @@ class MediaInfo:
|
|||||||
# 标题
|
# 标题
|
||||||
if not self.title:
|
if not self.title:
|
||||||
self.title = info.get("title")
|
self.title = info.get("title")
|
||||||
|
# 英文标题,暂时不支持
|
||||||
|
if not self.en_title:
|
||||||
|
self.en_title = info.get('original_title')
|
||||||
# 原语种标题
|
# 原语种标题
|
||||||
if not self.original_title:
|
if not self.original_title:
|
||||||
self.original_title = info.get("original_title")
|
self.original_title = info.get("original_title")
|
||||||
|
@ -580,6 +580,8 @@ class FileTransferModule(_ModuleBase):
|
|||||||
return {
|
return {
|
||||||
# 标题
|
# 标题
|
||||||
"title": __convert_invalid_characters(mediainfo.title),
|
"title": __convert_invalid_characters(mediainfo.title),
|
||||||
|
# 英文标题
|
||||||
|
"en_title": __convert_invalid_characters(mediainfo.en_title),
|
||||||
# 原语种标题
|
# 原语种标题
|
||||||
"original_title": __convert_invalid_characters(mediainfo.original_title),
|
"original_title": __convert_invalid_characters(mediainfo.original_title),
|
||||||
# 原文件名
|
# 原文件名
|
||||||
|
@ -555,6 +555,8 @@ class TmdbHelper:
|
|||||||
tmdb_info['names'] = self.__get_names(tmdb_info)
|
tmdb_info['names'] = self.__get_names(tmdb_info)
|
||||||
# 转换中文标题
|
# 转换中文标题
|
||||||
self.__update_tmdbinfo_cn_title(tmdb_info)
|
self.__update_tmdbinfo_cn_title(tmdb_info)
|
||||||
|
# 转换英文标题
|
||||||
|
self.__update_tmdbinfo_en_title(tmdb_info)
|
||||||
|
|
||||||
return tmdb_info
|
return tmdb_info
|
||||||
|
|
||||||
@ -595,6 +597,38 @@ class TmdbHelper:
|
|||||||
else:
|
else:
|
||||||
tmdb_info['name'] = cn_title
|
tmdb_info['name'] = cn_title
|
||||||
|
|
||||||
|
@staticmethod
|
||||||
|
def __update_tmdbinfo_en_title(tmdb_info: dict):
|
||||||
|
"""
|
||||||
|
更新TMDB信息中的英文名称
|
||||||
|
"""
|
||||||
|
|
||||||
|
def __get_tmdb_english_title(tmdbinfo):
|
||||||
|
"""
|
||||||
|
从别名中获取英文标题
|
||||||
|
"""
|
||||||
|
if not tmdbinfo:
|
||||||
|
return None
|
||||||
|
translations = tmdb_info.get("translations", {}).get("translations", [])
|
||||||
|
for translation in translations:
|
||||||
|
if translation.get("iso_3166_1") == "US":
|
||||||
|
return translation.get("data", {}).get("title") if tmdbinfo.get("media_type") == MediaType.MOVIE \
|
||||||
|
else translation.get("data", {}).get("name")
|
||||||
|
return None
|
||||||
|
|
||||||
|
# 查找英文名
|
||||||
|
org_title = (
|
||||||
|
tmdb_info.get("original_title")
|
||||||
|
if tmdb_info.get("media_type") == MediaType.MOVIE
|
||||||
|
else tmdb_info.get("original_name")
|
||||||
|
)
|
||||||
|
if tmdb_info.get("original_language") == "en":
|
||||||
|
tmdb_info['en_title'] = org_title
|
||||||
|
# TODO: 对于日文标题,使用罗马字作为英文标题可能更合适?
|
||||||
|
else:
|
||||||
|
en_title = __get_tmdb_english_title(tmdb_info)
|
||||||
|
tmdb_info['en_title'] = en_title or org_title
|
||||||
|
|
||||||
def __get_movie_detail(self,
|
def __get_movie_detail(self,
|
||||||
tmdbid: int,
|
tmdbid: int,
|
||||||
append_to_response: str = "images,"
|
append_to_response: str = "images,"
|
||||||
|
@ -67,6 +67,8 @@ class MediaInfo(BaseModel):
|
|||||||
type: Optional[str] = None
|
type: Optional[str] = None
|
||||||
# 媒体标题
|
# 媒体标题
|
||||||
title: Optional[str] = None
|
title: Optional[str] = None
|
||||||
|
# 英文标题
|
||||||
|
en_title: Optional[str] = None
|
||||||
# 年份
|
# 年份
|
||||||
year: Optional[str] = None
|
year: Optional[str] = None
|
||||||
# 标题(年份)
|
# 标题(年份)
|
||||||
|
Loading…
x
Reference in New Issue
Block a user