diff --git a/app/modules/douban/__init__.py b/app/modules/douban/__init__.py index 2c206ec1..3ea37602 100644 --- a/app/modules/douban/__init__.py +++ b/app/modules/douban/__init__.py @@ -1,3 +1,4 @@ +import re from pathlib import Path from typing import List, Optional, Tuple, Union @@ -487,6 +488,12 @@ class DoubanModule(_ModuleBase): if not doubaninfo: logger.warn(f"未找到 {mediainfo.title} 的豆瓣信息") return + # 查询豆瓣详情 + doubanid = doubaninfo.get("id") + if not str(doubanid).isdigit(): + doubanid = re.search(r"\d+", doubanid).group(0) + doubaninfo = self.douban_info(doubanid) + # 刮削路径 scrape_path = path / path.name self.scraper.gen_scraper_files(meta=meta, mediainfo=MediaInfo(douban_info=doubaninfo), @@ -510,6 +517,11 @@ class DoubanModule(_ModuleBase): if not doubaninfo: logger.warn(f"未找到 {mediainfo.title} 的豆瓣信息") break + # 查询豆瓣详情 + doubanid = doubaninfo.get("id") + if not str(doubanid).isdigit(): + doubanid = re.search(r"\d+", doubanid).group(0) + doubaninfo = self.douban_info(doubanid) # 刮削 self.scraper.gen_scraper_files(meta=meta, mediainfo=MediaInfo(douban_info=doubaninfo), diff --git a/app/plugins/personmeta/__init__.py b/app/plugins/personmeta/__init__.py index debff1ff..a6349fdd 100644 --- a/app/plugins/personmeta/__init__.py +++ b/app/plugins/personmeta/__init__.py @@ -593,7 +593,11 @@ class PersonMeta(_PluginBase): season=season) # 豆瓣演员 if doubaninfo: - doubanitem = self.chain.douban_info(doubaninfo.get("id")) or {} + doubanid = doubaninfo.get("id") + if not str(doubanid).isdigit(): + # 从https://api.douban.com/movie/35561680中提取出字 + doubanid = re.search(r"\d+", doubanid).group(0) + doubanitem = self.chain.douban_info(doubanid) or {} return (doubanitem.get("actors") or []) + (doubanitem.get("directors") or []) else: logger.warn(f"未找到豆瓣信息:{mediainfo.title_year}")