diff --git a/package.json b/package.json index 3d7ddbe..00e0de0 100644 --- a/package.json +++ b/package.json @@ -58,7 +58,7 @@ "DoubanRank": { "name": "豆瓣榜单订阅", "description": "监控豆瓣热门榜单,自动添加订阅。", - "version": "1.2", + "version": "1.3", "icon": "movie.jpg", "author": "jxxghp", "level": 2 diff --git a/plugins/doubanrank/__init__.py b/plugins/doubanrank/__init__.py index 3b8f9e1..6d40d21 100644 --- a/plugins/doubanrank/__init__.py +++ b/plugins/doubanrank/__init__.py @@ -27,7 +27,7 @@ class DoubanRank(_PluginBase): # 插件图标 plugin_icon = "movie.jpg" # 插件版本 - plugin_version = "1.2" + plugin_version = "1.3" # 插件作者 plugin_author = "jxxghp" # 作者主页 @@ -48,7 +48,7 @@ class DoubanRank(_PluginBase): _douban_address = { 'movie-ustop': 'https://rsshub.app/douban/movie/ustop', 'movie-weekly': 'https://rsshub.app/douban/movie/weekly', - 'movie-real-time': 'https://rsshub.app/douban/movie/weekly/subject_real_time_hotest', + 'movie-real-time': 'https://rsshub.app/douban/movie/weekly/movie_real_time_hotest', 'show-domestic': 'https://rsshub.app/douban/movie/weekly/show_domestic', 'movie-hot-gaia': 'https://rsshub.app/douban/movie/weekly/movie_hot_gaia', 'tv-hot': 'https://rsshub.app/douban/movie/weekly/tv_hot', @@ -484,12 +484,14 @@ class DoubanRank(_PluginBase): title = rss_info.get('title') douban_id = rss_info.get('doubanid') + year = rss_info.get('year') unique_flag = f"doubanrank: {title} (DB:{douban_id})" # 检查是否已处理过 if unique_flag in [h.get("unique") for h in history]: continue # 元数据 meta = MetaInfo(title) + meta.year = year # 识别媒体信息 if douban_id: # 识别豆瓣信息 @@ -565,25 +567,36 @@ class DoubanRank(_PluginBase): items = rootNode.getElementsByTagName("item") for item in items: try: + rss_info = {} + # 标题 title = DomUtils.tag_value(item, "title", default="") # 链接 link = DomUtils.tag_value(item, "link", default="") + # 年份 + description = DomUtils.tag_value(item, "description", default="") + if not title and not link: logger.warn(f"条目标题和链接均为空,无法处理") continue + rss_info['title'] = title + rss_info['link'] = link + doubanid = re.findall(r"/(\d+)/", link) if doubanid: doubanid = doubanid[0] if doubanid and not str(doubanid).isdigit(): logger.warn(f"解析的豆瓣ID格式不正确:{doubanid}") continue + rss_info['doubanid'] = doubanid + + # 匹配4位独立数字1900-2099年 + year = re.findall(r"\b(19\d{2}|20\d{2})\b", description) + if year: + rss_info['year'] = year[0] + # 返回对象 - ret_array.append({ - 'title': title, - 'link': link, - 'doubanid': doubanid - }) + ret_array.append(rss_info) except Exception as e1: logger.error("解析RSS条目失败:" + str(e1)) continue