fix
This commit is contained in:
parent
15a0bc6c12
commit
d836b385ae
@ -11,6 +11,299 @@ from app.schemas.types import MediaType
|
|||||||
|
|
||||||
class FanartModule(_ModuleBase):
|
class FanartModule(_ModuleBase):
|
||||||
|
|
||||||
|
"""
|
||||||
|
{
|
||||||
|
"name": "The Wheel of Time",
|
||||||
|
"thetvdb_id": "355730",
|
||||||
|
"tvposter": [
|
||||||
|
{
|
||||||
|
"id": "174068",
|
||||||
|
"url": "http://assets.fanart.tv/fanart/tv/355730/tvposter/the-wheel-of-time-64b009de9548d.jpg",
|
||||||
|
"lang": "en",
|
||||||
|
"likes": "3"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "176424",
|
||||||
|
"url": "http://assets.fanart.tv/fanart/tv/355730/tvposter/the-wheel-of-time-64de44fe42073.jpg",
|
||||||
|
"lang": "00",
|
||||||
|
"likes": "3"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "176407",
|
||||||
|
"url": "http://assets.fanart.tv/fanart/tv/355730/tvposter/the-wheel-of-time-64dde63c7c941.jpg",
|
||||||
|
"lang": "en",
|
||||||
|
"likes": "0"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "177321",
|
||||||
|
"url": "http://assets.fanart.tv/fanart/tv/355730/tvposter/the-wheel-of-time-64eda10599c3d.jpg",
|
||||||
|
"lang": "cz",
|
||||||
|
"likes": "0"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "155050",
|
||||||
|
"url": "http://assets.fanart.tv/fanart/tv/355730/tvposter/the-wheel-of-time-6313adbd1fd58.jpg",
|
||||||
|
"lang": "pl",
|
||||||
|
"likes": "0"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "140198",
|
||||||
|
"url": "http://assets.fanart.tv/fanart/tv/355730/tvposter/the-wheel-of-time-61a0d7b11952e.jpg",
|
||||||
|
"lang": "en",
|
||||||
|
"likes": "0"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "140034",
|
||||||
|
"url": "http://assets.fanart.tv/fanart/tv/355730/tvposter/the-wheel-of-time-619e65b73871d.jpg",
|
||||||
|
"lang": "en",
|
||||||
|
"likes": "0"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"hdtvlogo": [
|
||||||
|
{
|
||||||
|
"id": "139835",
|
||||||
|
"url": "http://assets.fanart.tv/fanart/tv/355730/hdtvlogo/the-wheel-of-time-6197d9392faba.png",
|
||||||
|
"lang": "en",
|
||||||
|
"likes": "3"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "140039",
|
||||||
|
"url": "http://assets.fanart.tv/fanart/tv/355730/hdtvlogo/the-wheel-of-time-619e87941a128.png",
|
||||||
|
"lang": "pt",
|
||||||
|
"likes": "3"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "140092",
|
||||||
|
"url": "http://assets.fanart.tv/fanart/tv/355730/hdtvlogo/the-wheel-of-time-619fa2347bada.png",
|
||||||
|
"lang": "en",
|
||||||
|
"likes": "3"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "164312",
|
||||||
|
"url": "http://assets.fanart.tv/fanart/tv/355730/hdtvlogo/the-wheel-of-time-63c8185cb8824.png",
|
||||||
|
"lang": "hu",
|
||||||
|
"likes": "1"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "139827",
|
||||||
|
"url": "http://assets.fanart.tv/fanart/tv/355730/hdtvlogo/the-wheel-of-time-6197539658a9e.png",
|
||||||
|
"lang": "en",
|
||||||
|
"likes": "1"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "177214",
|
||||||
|
"url": "http://assets.fanart.tv/fanart/tv/355730/hdtvlogo/the-wheel-of-time-64ebae44c23a6.png",
|
||||||
|
"lang": "cz",
|
||||||
|
"likes": "0"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "177215",
|
||||||
|
"url": "http://assets.fanart.tv/fanart/tv/355730/hdtvlogo/the-wheel-of-time-64ebae472deef.png",
|
||||||
|
"lang": "cz",
|
||||||
|
"likes": "0"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "156163",
|
||||||
|
"url": "http://assets.fanart.tv/fanart/tv/355730/hdtvlogo/the-wheel-of-time-63316bef1ff9d.png",
|
||||||
|
"lang": "cz",
|
||||||
|
"likes": "0"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "155051",
|
||||||
|
"url": "http://assets.fanart.tv/fanart/tv/355730/hdtvlogo/the-wheel-of-time-6313add04ca92.png",
|
||||||
|
"lang": "pl",
|
||||||
|
"likes": "0"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "152668",
|
||||||
|
"url": "http://assets.fanart.tv/fanart/tv/355730/hdtvlogo/the-wheel-of-time-62ced3775a40a.png",
|
||||||
|
"lang": "pl",
|
||||||
|
"likes": "0"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "142266",
|
||||||
|
"url": "http://assets.fanart.tv/fanart/tv/355730/hdtvlogo/the-wheel-of-time-61ccd93eeac2b.png",
|
||||||
|
"lang": "de",
|
||||||
|
"likes": "0"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"hdclearart": [
|
||||||
|
{
|
||||||
|
"id": "164313",
|
||||||
|
"url": "http://assets.fanart.tv/fanart/tv/355730/hdclearart/the-wheel-of-time-63c81871c982c.png",
|
||||||
|
"lang": "en",
|
||||||
|
"likes": "3"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "140284",
|
||||||
|
"url": "http://assets.fanart.tv/fanart/tv/355730/hdclearart/the-wheel-of-time-61a2128ed1df2.png",
|
||||||
|
"lang": "pt",
|
||||||
|
"likes": "3"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "139828",
|
||||||
|
"url": "http://assets.fanart.tv/fanart/tv/355730/hdclearart/the-wheel-of-time-61975401e894c.png",
|
||||||
|
"lang": "en",
|
||||||
|
"likes": "1"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "164314",
|
||||||
|
"url": "http://assets.fanart.tv/fanart/tv/355730/hdclearart/the-wheel-of-time-63c8188488a5f.png",
|
||||||
|
"lang": "hu",
|
||||||
|
"likes": "1"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "177322",
|
||||||
|
"url": "http://assets.fanart.tv/fanart/tv/355730/hdclearart/the-wheel-of-time-64eda135933b6.png",
|
||||||
|
"lang": "cz",
|
||||||
|
"likes": "0"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "142267",
|
||||||
|
"url": "http://assets.fanart.tv/fanart/tv/355730/hdclearart/the-wheel-of-time-61ccda9918c5c.png",
|
||||||
|
"lang": "de",
|
||||||
|
"likes": "0"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"seasonposter": [
|
||||||
|
{
|
||||||
|
"id": "140199",
|
||||||
|
"url": "http://assets.fanart.tv/fanart/tv/355730/seasonposter/the-wheel-of-time-61a0d7c2976de.jpg",
|
||||||
|
"lang": "en",
|
||||||
|
"likes": "1",
|
||||||
|
"season": "1"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "176395",
|
||||||
|
"url": "http://assets.fanart.tv/fanart/tv/355730/seasonposter/the-wheel-of-time-64dd80b3d79a9.jpg",
|
||||||
|
"lang": "en",
|
||||||
|
"likes": "0",
|
||||||
|
"season": "1"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "140035",
|
||||||
|
"url": "http://assets.fanart.tv/fanart/tv/355730/seasonposter/the-wheel-of-time-619e65c4d5357.jpg",
|
||||||
|
"lang": "en",
|
||||||
|
"likes": "0",
|
||||||
|
"season": "1"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"tvthumb": [
|
||||||
|
{
|
||||||
|
"id": "140242",
|
||||||
|
"url": "http://assets.fanart.tv/fanart/tv/355730/tvthumb/the-wheel-of-time-61a1813035506.jpg",
|
||||||
|
"lang": "en",
|
||||||
|
"likes": "1"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "177323",
|
||||||
|
"url": "http://assets.fanart.tv/fanart/tv/355730/tvthumb/the-wheel-of-time-64eda15b6dce6.jpg",
|
||||||
|
"lang": "cz",
|
||||||
|
"likes": "0"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "176399",
|
||||||
|
"url": "http://assets.fanart.tv/fanart/tv/355730/tvthumb/the-wheel-of-time-64dd85c9b618c.jpg",
|
||||||
|
"lang": "en",
|
||||||
|
"likes": "0"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "152669",
|
||||||
|
"url": "http://assets.fanart.tv/fanart/tv/355730/tvthumb/the-wheel-of-time-62ced53d16574.jpg",
|
||||||
|
"lang": "pl",
|
||||||
|
"likes": "0"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "141983",
|
||||||
|
"url": "http://assets.fanart.tv/fanart/tv/355730/tvthumb/the-wheel-of-time-61c6d04a6d701.jpg",
|
||||||
|
"lang": "en",
|
||||||
|
"likes": "0"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"showbackground": [
|
||||||
|
{
|
||||||
|
"id": "177324",
|
||||||
|
"url": "http://assets.fanart.tv/fanart/tv/355730/showbackground/the-wheel-of-time-64eda1833ccb1.jpg",
|
||||||
|
"lang": "",
|
||||||
|
"likes": "0",
|
||||||
|
"season": "all"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "141986",
|
||||||
|
"url": "http://assets.fanart.tv/fanart/tv/355730/showbackground/the-wheel-of-time-61c6d08f7c7e2.jpg",
|
||||||
|
"lang": "",
|
||||||
|
"likes": "0",
|
||||||
|
"season": "all"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "139868",
|
||||||
|
"url": "http://assets.fanart.tv/fanart/tv/355730/showbackground/the-wheel-of-time-6198ce358b98a.jpg",
|
||||||
|
"lang": "",
|
||||||
|
"likes": "0",
|
||||||
|
"season": "all"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"seasonthumb": [
|
||||||
|
{
|
||||||
|
"id": "176396",
|
||||||
|
"url": "http://assets.fanart.tv/fanart/tv/355730/seasonthumb/the-wheel-of-time-64dd80c8593f9.jpg",
|
||||||
|
"lang": "en",
|
||||||
|
"likes": "0",
|
||||||
|
"season": "1"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "176400",
|
||||||
|
"url": "http://assets.fanart.tv/fanart/tv/355730/seasonthumb/the-wheel-of-time-64dd85da7c5e9.jpg",
|
||||||
|
"lang": "en",
|
||||||
|
"likes": "0",
|
||||||
|
"season": "0"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"tvbanner": [
|
||||||
|
{
|
||||||
|
"id": "176397",
|
||||||
|
"url": "http://assets.fanart.tv/fanart/tv/355730/tvbanner/the-wheel-of-time-64dd80da9a255.jpg",
|
||||||
|
"lang": "en",
|
||||||
|
"likes": "0"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "176401",
|
||||||
|
"url": "http://assets.fanart.tv/fanart/tv/355730/tvbanner/the-wheel-of-time-64dd85e8904ea.jpg",
|
||||||
|
"lang": "en",
|
||||||
|
"likes": "0"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "141988",
|
||||||
|
"url": "http://assets.fanart.tv/fanart/tv/355730/tvbanner/the-wheel-of-time-61c6d34bceb5f.jpg",
|
||||||
|
"lang": "en",
|
||||||
|
"likes": "0"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "141984",
|
||||||
|
"url": "http://assets.fanart.tv/fanart/tv/355730/tvbanner/the-wheel-of-time-61c6d06c1c21c.jpg",
|
||||||
|
"lang": "en",
|
||||||
|
"likes": "0"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"seasonbanner": [
|
||||||
|
{
|
||||||
|
"id": "176398",
|
||||||
|
"url": "http://assets.fanart.tv/fanart/tv/355730/seasonbanner/the-wheel-of-time-64dd80e7dbd9f.jpg",
|
||||||
|
"lang": "en",
|
||||||
|
"likes": "0",
|
||||||
|
"season": "1"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "176402",
|
||||||
|
"url": "http://assets.fanart.tv/fanart/tv/355730/seasonbanner/the-wheel-of-time-64dd85fb4f1b1.jpg",
|
||||||
|
"lang": "en",
|
||||||
|
"likes": "0",
|
||||||
|
"season": "0"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
"""
|
||||||
|
|
||||||
# 代理
|
# 代理
|
||||||
_proxies: dict = settings.PROXY
|
_proxies: dict = settings.PROXY
|
||||||
|
|
||||||
@ -40,6 +333,7 @@ class FanartModule(_ModuleBase):
|
|||||||
if not result or result.get('status') == 'error':
|
if not result or result.get('status') == 'error':
|
||||||
logger.warn(f"没有获取到 {mediainfo.title_year} 的Fanart图片数据")
|
logger.warn(f"没有获取到 {mediainfo.title_year} 的Fanart图片数据")
|
||||||
return
|
return
|
||||||
|
# FIXME 季图片要区分季号
|
||||||
for name, images in result.items():
|
for name, images in result.items():
|
||||||
if not images:
|
if not images:
|
||||||
continue
|
continue
|
||||||
|
@ -15,7 +15,6 @@ from app.utils.http import RequestUtils
|
|||||||
|
|
||||||
|
|
||||||
class TmdbScraper:
|
class TmdbScraper:
|
||||||
|
|
||||||
tmdb = None
|
tmdb = None
|
||||||
|
|
||||||
def __init__(self, tmdb):
|
def __init__(self, tmdb):
|
||||||
@ -56,11 +55,11 @@ class TmdbScraper:
|
|||||||
image_name = attr_name.replace("_path", "") + Path(attr_value).suffix
|
image_name = attr_name.replace("_path", "") + Path(attr_value).suffix
|
||||||
self.__save_image(url=attr_value,
|
self.__save_image(url=attr_value,
|
||||||
file_path=file_path.with_name(image_name))
|
file_path=file_path.with_name(image_name))
|
||||||
# 电视剧
|
# 电视剧,路径为每一季的文件名 名称/Season xx/名称 SxxExx.xxx
|
||||||
else:
|
else:
|
||||||
# 识别
|
# 识别
|
||||||
meta = MetaInfo(file_path.stem)
|
meta = MetaInfo(file_path.stem)
|
||||||
# 不存在时才处理
|
# 根目录不存在时才处理
|
||||||
if not file_path.parent.with_name("tvshow.nfo").exists():
|
if not file_path.parent.with_name("tvshow.nfo").exists():
|
||||||
# 根目录描述文件
|
# 根目录描述文件
|
||||||
self.__gen_tv_nfo_file(mediainfo=mediainfo,
|
self.__gen_tv_nfo_file(mediainfo=mediainfo,
|
||||||
@ -84,16 +83,25 @@ class TmdbScraper:
|
|||||||
self.__gen_tv_season_nfo_file(seasoninfo=seasoninfo,
|
self.__gen_tv_season_nfo_file(seasoninfo=seasoninfo,
|
||||||
season=meta.begin_season,
|
season=meta.begin_season,
|
||||||
season_path=file_path.parent)
|
season_path=file_path.parent)
|
||||||
# 季的图片
|
# TMDB季poster图片
|
||||||
|
sea_seq = str(meta.begin_season).rjust(2, '0')
|
||||||
|
if seasoninfo.get("poster_path"):
|
||||||
|
# 后缀
|
||||||
|
ext = Path(seasoninfo.get('poster_path')).suffix
|
||||||
|
# URL
|
||||||
|
url = f"https://{settings.TMDB_IMAGE_DOMAIN}/t/p/original{seasoninfo.get('poster_path')}"
|
||||||
|
self.__save_image(url, file_path.parent.with_name(f"season{sea_seq}-poster{ext}"))
|
||||||
|
# FIXME 季的其它图片
|
||||||
for attr_name, attr_value in vars(mediainfo).items():
|
for attr_name, attr_value in vars(mediainfo).items():
|
||||||
if attr_value \
|
if attr_value \
|
||||||
and attr_name.startswith("season") \
|
and attr_name.startswith("season") \
|
||||||
|
and not attr_name.endswith("poster") \
|
||||||
and attr_value \
|
and attr_value \
|
||||||
and isinstance(attr_value, str) \
|
and isinstance(attr_value, str) \
|
||||||
and attr_value.startswith("http"):
|
and attr_value.startswith("http"):
|
||||||
image_name = attr_name.replace("_path",
|
image_name = attr_name.replace("_path",
|
||||||
"").replace("season",
|
"").replace("season",
|
||||||
f"{str(meta.begin_season).rjust(2, '0')}-") \
|
f"{sea_seq}-") \
|
||||||
+ Path(attr_value).suffix
|
+ Path(attr_value).suffix
|
||||||
self.__save_image(url=attr_value,
|
self.__save_image(url=attr_value,
|
||||||
file_path=file_path.parent.with_name(f"season{image_name}"))
|
file_path=file_path.parent.with_name(f"season{image_name}"))
|
||||||
|
Loading…
x
Reference in New Issue
Block a user