From 9e386034fffe91f5caa99180595426940862d2a2 Mon Sep 17 00:00:00 2001 From: jxxghp Date: Wed, 29 Jan 2025 19:57:27 +0800 Subject: [PATCH 1/2] =?UTF-8?q?feat=EF=BC=9A=E8=B1=86=E7=93=A3=E6=83=B3?= =?UTF-8?q?=E7=9C=8B=E6=94=AF=E6=8C=81=E7=BB=91=E5=AE=9AMP=E7=94=A8?= =?UTF-8?q?=E6=88=B7=E8=AE=A2=E9=98=85?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- package.v2.json | 3 ++- plugins.v2/doubansync/__init__.py | 23 +++++++++++++++++++++-- 2 files changed, 23 insertions(+), 3 deletions(-) diff --git a/package.v2.json b/package.v2.json index ad1d073..fd19787 100644 --- a/package.v2.json +++ b/package.v2.json @@ -341,11 +341,12 @@ "name": "豆瓣想看", "description": "同步豆瓣想看数据,自动添加订阅。", "labels": "订阅", - "version": "2.0.0", + "version": "2.0.1", "icon": "douban.png", "author": "jxxghp", "level": 2, "history": { + "v2.0.1": "支持将豆瓣ID转换为MoviePilot中已有用户(在用户个人信息中绑定豆瓣ID),需要MoviePilot v2.2.6+", "v2.0.0": "优化cron表达式输入" } } diff --git a/plugins.v2/doubansync/__init__.py b/plugins.v2/doubansync/__init__.py index 524d100..62819d5 100644 --- a/plugins.v2/doubansync/__init__.py +++ b/plugins.v2/doubansync/__init__.py @@ -9,6 +9,7 @@ from apscheduler.triggers.cron import CronTrigger from app import schemas from app.chain.media import MediaChain +from app.db.user_oper import UserOper from app.schemas.types import MediaType from app.chain.download import DownloadChain @@ -34,7 +35,7 @@ class DoubanSync(_PluginBase): # 插件图标 plugin_icon = "douban.png" # 插件版本 - plugin_version = "2.0.0" + plugin_version = "2.0.1" # 插件作者 plugin_author = "jxxghp" # 作者主页 @@ -55,6 +56,7 @@ class DoubanSync(_PluginBase): searchchain = None subscribechain = None mediachain = None + useroper = None # 配置属性 _enabled: bool = False @@ -72,6 +74,7 @@ class DoubanSync(_PluginBase): self.searchchain = SearchChain() self.subscribechain = SubscribeChain() self.mediachain = MediaChain() + self.useroper = UserOper() # 停止现有任务 self.stop_service() @@ -492,6 +495,20 @@ class DoubanSync(_PluginBase): except Exception as e: logger.error("退出插件失败:%s" % str(e)) + def __get_username_by_douban(self, user_id: str) -> Optional[str]: + """ + 根据豆瓣ID获取用户名 + """ + try: + users = self.useroper.list() + for user in users: + user_settings = user.settings + if user_settings and user_settings.get("douban_userid") == user_id: + return user.name + except Exception as err: + logger.warn(f'{err}, 需要 MoviePilot v2.2.6+ 版本') + return None + def sync(self): """ 通过用户RSS同步豆瓣想看数据 @@ -571,6 +588,8 @@ class DoubanSync(_PluginBase): logger.info(f'{mediainfo.title_year} 媒体库中已存在') action = "exist" else: + # 用户转换 + real_name = self.__get_username_by_douban(user_id) # 添加订阅 logger.info(f'{mediainfo.title_year} 媒体库中不存在或不完整,添加订阅 ...') self.subscribechain.add(title=mediainfo.title, @@ -579,7 +598,7 @@ class DoubanSync(_PluginBase): tmdbid=mediainfo.tmdb_id, season=meta.begin_season, exist_ok=True, - username="豆瓣想看") + username=real_name or "豆瓣想看") action = "subscribe" # 存储历史记录 history.append({ From 5c55119b6632696a1e5816d504181656d5867347 Mon Sep 17 00:00:00 2001 From: jxxghp Date: Thu, 30 Jan 2025 08:29:47 +0800 Subject: [PATCH 2/2] fix --- plugins.v2/doubansync/__init__.py | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) diff --git a/plugins.v2/doubansync/__init__.py b/plugins.v2/doubansync/__init__.py index 62819d5..3c202ab 100644 --- a/plugins.v2/doubansync/__init__.py +++ b/plugins.v2/doubansync/__init__.py @@ -500,11 +500,7 @@ class DoubanSync(_PluginBase): 根据豆瓣ID获取用户名 """ try: - users = self.useroper.list() - for user in users: - user_settings = user.settings - if user_settings and user_settings.get("douban_userid") == user_id: - return user.name + return self.useroper.get_name(douban_userid=user_id) except Exception as err: logger.warn(f'{err}, 需要 MoviePilot v2.2.6+ 版本') return None