fix 豆瓣榜单 & 豆瓣想看

This commit is contained in:
jxxghp
2024-03-20 15:27:06 +08:00
parent 96e7b691fa
commit 441ad0c90d
3 changed files with 39 additions and 14 deletions

View File

@@ -34,7 +34,7 @@
"DoubanSync": {
"name": "豆瓣想看",
"description": "同步豆瓣想看数据,自动添加订阅。",
"version": "1.3",
"version": "1.4",
"icon": "douban.png",
"author": "jxxghp",
"level": 2
@@ -58,7 +58,7 @@
"DoubanRank": {
"name": "豆瓣榜单订阅",
"description": "监控豆瓣热门榜单,自动添加订阅。",
"version": "1.6",
"version": "1.7",
"icon": "movie.jpg",
"author": "jxxghp",
"level": 2

View File

@@ -9,6 +9,7 @@ from apscheduler.schedulers.background import BackgroundScheduler
from apscheduler.triggers.cron import CronTrigger
from app.chain.download import DownloadChain
from app.chain.media import MediaChain
from app.chain.subscribe import SubscribeChain
from app.core.config import settings
from app.core.context import MediaInfo
@@ -27,7 +28,7 @@ class DoubanRank(_PluginBase):
# 插件图标
plugin_icon = "movie.jpg"
# 插件版本
plugin_version = "1.6"
plugin_version = "1.7"
# 插件作者
plugin_author = "jxxghp"
# 作者主页
@@ -44,6 +45,7 @@ class DoubanRank(_PluginBase):
# 私有属性
downloadchain: DownloadChain = None
subscribechain: SubscribeChain = None
mediachain: MediaChain = None
_scheduler = None
_douban_address = {
'movie-ustop': 'https://rsshub.app/douban/movie/ustop',
@@ -68,6 +70,7 @@ class DoubanRank(_PluginBase):
def init_plugin(self, config: dict = None):
self.downloadchain = DownloadChain()
self.subscribechain = SubscribeChain()
self.mediachain = MediaChain()
if config:
self._enabled = config.get("enabled")
@@ -514,11 +517,20 @@ class DoubanRank(_PluginBase):
# 识别媒体信息
if douban_id:
# 识别豆瓣信息
mediainfo = self.chain.recognize_media(meta=meta, doubanid=douban_id)
if not mediainfo:
logger.warn(f'未识别到媒体信息,标题:{title}豆瓣ID{douban_id}')
continue
if settings.RECOGNIZE_SOURCE == "themoviedb":
tmdbinfo = self.mediachain.get_tmdbinfo_by_doubanid(doubanid=douban_id, mtype=meta.type)
if not tmdbinfo:
logger.warn(f'未能通过豆瓣ID {douban_id} 获取到TMDB信息标题{title}豆瓣ID{douban_id}')
continue
mediainfo = self.chain.recognize_media(meta=meta, tmdbid=tmdbinfo.get("id"))
if not mediainfo:
logger.warn(f'TMDBID {tmdbinfo.get("id")} 未识别到媒体信息')
continue
else:
mediainfo = self.chain.recognize_media(meta=meta, doubanid=douban_id)
if not mediainfo:
logger.warn(f'豆瓣ID {douban_id} 未识别到媒体信息')
continue
else:
# 匹配媒体信息
mediainfo: MediaInfo = self.chain.recognize_media(meta=meta)

View File

@@ -6,6 +6,8 @@ from typing import Optional, Any, List, Dict, Tuple
import pytz
from apscheduler.schedulers.background import BackgroundScheduler
from apscheduler.triggers.cron import CronTrigger
from app.chain.media import MediaChain
from app.schemas.types import MediaType
from app.chain.download import DownloadChain
@@ -31,7 +33,7 @@ class DoubanSync(_PluginBase):
# 插件图标
plugin_icon = "douban.png"
# 插件版本
plugin_version = "1.3"
plugin_version = "1.4"
# 插件作者
plugin_author = "jxxghp"
# 作者主页
@@ -51,6 +53,7 @@ class DoubanSync(_PluginBase):
downloadchain = None
searchchain = None
subscribechain = None
mediachain = None
# 配置属性
_enabled: bool = False
@@ -67,6 +70,7 @@ class DoubanSync(_PluginBase):
self.downloadchain = DownloadChain()
self.searchchain = SearchChain()
self.subscribechain = SubscribeChain()
self.mediachain = MediaChain()
# 停止现有任务
self.stop_service()
@@ -497,12 +501,21 @@ class DoubanSync(_PluginBase):
# 识别媒体信息
meta = MetaInfo(title=title)
douban_info = self.chain.douban_info(doubanid=douban_id)
meta.year = douban_info.get("year")
meta.type = MediaType.MOVIE if douban_info.get("type") == "movie" else MediaType.TV
mediainfo = self.chain.recognize_media(meta=meta, doubanid=douban_id)
if not mediainfo:
logger.warn(f'未识别到媒体信息,标题:{title}豆瓣ID{douban_id}')
continue
if settings.RECOGNIZE_SOURCE == "themoviedb":
tmdbinfo = self.mediachain.get_tmdbinfo_by_doubanid(doubanid=douban_id, mtype=meta.type)
if not tmdbinfo:
logger.warn(f'未能通过豆瓣ID {douban_id} 获取到TMDB信息标题{title}豆瓣ID{douban_id}')
continue
mediainfo = self.chain.recognize_media(meta=meta, tmdbid=tmdbinfo.get("id"))
if not mediainfo:
logger.warn(f'TMDBID {tmdbinfo.get("id")} 未识别到媒体信息')
continue
else:
mediainfo = self.chain.recognize_media(meta=meta, doubanid=douban_id)
if not mediainfo:
logger.warn(f'豆瓣ID {douban_id} 未识别到媒体信息')
continue
# 查询缺失的媒体信息
exist_flag, no_exists = self.downloadchain.get_no_exists_info(meta=meta, mediainfo=mediainfo)
if exist_flag: