Merge pull request #24 from honue/main

This commit is contained in:
jxxghp
2023-12-16 17:03:13 +08:00
committed by GitHub
2 changed files with 21 additions and 8 deletions

View File

@@ -58,7 +58,7 @@
"DoubanRank": {
"name": "豆瓣榜单订阅",
"description": "监控豆瓣热门榜单,自动添加订阅。",
"version": "1.2",
"version": "1.3",
"icon": "movie.jpg",
"author": "jxxghp",
"level": 2

View File

@@ -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