From 602ed68efd3dce22255758d6b9baea926d65dbaf Mon Sep 17 00:00:00 2001 From: hcplantern Date: Mon, 26 Feb 2024 23:48:59 +0800 Subject: [PATCH 1/7] feat: NeoDB Sync Plugin v1.0 --- icons/neodb.png | Bin 0 -> 46160 bytes package.json | 10 +- plugins/neodbsync/__init__.py | 687 ++++++++++++++++++++++++++++++++++ 3 files changed, 696 insertions(+), 1 deletion(-) create mode 100644 icons/neodb.png create mode 100644 plugins/neodbsync/__init__.py diff --git a/icons/neodb.png b/icons/neodb.png new file mode 100644 index 0000000000000000000000000000000000000000..292f303494aa17c4644489158d1120576de4ea2a GIT binary patch literal 46160 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 literal 0 HcmV?d00001 diff --git a/package.json b/package.json index d607859..e4b1414 100644 --- a/package.json +++ b/package.json @@ -374,5 +374,13 @@ "icon": "words.png", "author": "honue", "level": 1 - } + }, + "NeoDBSync": { + "name": "NeoDB 想看", + "description": "同步 NeoDB 想看条目,自动添加订阅", + "version": "1.0", + "icon": "neodb.png", + "author": "hcplantern", + "level": 1 + } } diff --git a/plugins/neodbsync/__init__.py b/plugins/neodbsync/__init__.py new file mode 100644 index 0000000..e4319e0 --- /dev/null +++ b/plugins/neodbsync/__init__.py @@ -0,0 +1,687 @@ +import datetime +from pathlib import Path +from threading import Lock +from typing import Optional, Any, List, Dict, Tuple + +import pytz +from apscheduler.schedulers.background import BackgroundScheduler +from apscheduler.triggers.cron import CronTrigger +import requests +from app.schemas.types import MediaType + +from app.chain.download import DownloadChain +from app.chain.search import SearchChain +from app.chain.subscribe import SubscribeChain +from app.core.config import settings +from app.core.event import Event +from app.core.event import eventmanager +from app.core.metainfo import MetaInfo +from app.log import logger +from app.plugins import _PluginBase +from app.schemas.types import EventType +from app.utils.http import RequestUtils + +lock = Lock() + + +class NeoDBSync(_PluginBase): + # 插件名称 + plugin_name = "NeoDB 想看" + # 插件描述 + plugin_desc = "同步 NeoDB 想看数据,自动添加订阅。" + # 插件图标 + plugin_icon = "neodb.png" + # 插件版本 + plugin_version = "1.0" + # 插件作者 + plugin_author = "hcplantern" + # 作者主页 + author_url = "https://hcplantern.top" + # 插件配置项ID前缀 + plugin_config_prefix = "neodbsync_" + # 加载顺序 + plugin_order = 3 + # 可使用的用户级别 + auth_level = 2 + + # 私有变量 + _movie_url: str = "https://neodb.social/api/me/shelf/wishlist?category=movie" + _tv_url: str = "https://neodb.social/api/me/shelf/wishlist?category=tv" + + _scheduler: Optional[BackgroundScheduler] = None + _cache_path: Optional[Path] = None + downloadchain = None + searchchain = None + subscribechain = None + + # 配置属性 + _enabled: bool = False + _onlyonce: bool = False + _cron: str = "" + _notify: bool = False + _days: int = 7 + _clear: bool = False + _clearflag: bool = False + _tokens: str = "" + + def init_plugin(self, config: dict = None): + self.downloadchain = DownloadChain() + self.searchchain = SearchChain() + self.subscribechain = SubscribeChain() + + # 停止现有任务 + self.stop_service() + + # 配置 + if config: + self._enabled = config.get("enabled") + self._cron = config.get("cron") + self._notify = config.get("notify") + self._days = config.get("days") + self._onlyonce = config.get("onlyonce") + self._clear = config.get("clear") + self._tokens = config.get("tokens") + + if self._enabled or self._onlyonce: + if self._onlyonce: + self._scheduler = BackgroundScheduler(timezone=settings.TZ) + logger.info(f"NeoDB 想看服务启动,立即运行一次") + self._scheduler.add_job(func=self.sync, trigger='date', + run_date=datetime.datetime.now( + tz=pytz.timezone(settings.TZ)) + datetime.timedelta(seconds=3) + ) + + # 启动任务 + if self._scheduler.get_jobs(): + self._scheduler.print_jobs() + self._scheduler.start() + + if self._onlyonce or self._clear: + # 关闭一次性开关 + self._onlyonce = False + # 记录缓存清理标志 + self._clearflag = self._clear + # 关闭清理缓存 + self._clear = False + # 保存配置 + self.__update_config() + + def get_state(self) -> bool: + return self._enabled + + @staticmethod + def get_command() -> List[Dict[str, Any]]: + """ + 定义远程控制命令 + :return: 命令关键字、事件、描述、附带数据 + """ + return [{ + "cmd": "/neodb_sync", + "event": EventType.PluginAction, + "desc": "同步 NeoDB 想看", + "category": "订阅", + "data": { + "action": "neodb_sync" + } + }] + + def get_api(self) -> List[Dict[str, Any]]: + """ + 获取插件API + [{ + "path": "/xx", + "endpoint": self.xxx, + "methods": ["GET", "POST"], + "summary": "API说明" + }] + """ + pass + + def get_service(self) -> List[Dict[str, Any]]: + """ + 注册插件公共服务 + [{ + "id": "服务ID", + "name": "服务名称", + "trigger": "触发器:cron/interval/date/CronTrigger.from_crontab()", + "func": self.xxx, + "kwargs": {} # 定时器参数 + }] + """ + if self._enabled and self._cron: + return [ + { + "id": "NeoDBSync", + "name": "NeoDB 想看同步服务", + "trigger": CronTrigger.from_crontab(self._cron), + "func": self.sync, + "kwargs": {} + } + ] + elif self._enabled: + return [ + { + "id": "NeoDBSync", + "name": "NeoDB 想看同步服务", + "trigger": "interval", + "func": self.sync, + "kwargs": {"minutes": 30} + } + ] + return [] + + def get_form(self) -> Tuple[List[dict], Dict[str, Any]]: + """ + 拼装插件配置页面,需要返回两块数据:1、页面配置;2、数据结构 + """ + return [ + { + 'component': 'VForm', + 'content': [ + { + 'component': 'VRow', + 'content': [ + { + 'component': 'VCol', + 'props': { + 'cols': 12, + 'md': 4 + }, + 'content': [ + { + 'component': 'VSwitch', + 'props': { + 'model': 'enabled', + 'label': '启用插件', + } + } + ] + }, + { + 'component': 'VCol', + 'props': { + 'cols': 12, + 'md': 4 + }, + 'content': [ + { + 'component': 'VSwitch', + 'props': { + 'model': 'notify', + 'label': '发送通知', + } + } + ] + }, + { + 'component': 'VCol', + 'props': { + 'cols': 12, + 'md': 4 + }, + 'content': [ + { + 'component': 'VSwitch', + 'props': { + 'model': 'onlyonce', + 'label': '立即运行一次', + } + } + ] + } + ] + }, + { + 'component': 'VRow', + 'content': [ + { + 'component': 'VCol', + 'props': { + 'cols': 12, + 'md': 6 + }, + 'content': [ + { + 'component': 'VTextField', + 'props': { + 'model': 'cron', + 'label': '执行周期', + 'placeholder': '5位cron表达式,留空自动' + } + } + ] + }, + { + 'component': 'VCol', + 'props': { + 'cols': 12, + 'md': 6 + }, + 'content': [ + { + 'component': 'VTextField', + 'props': { + 'model': 'days', + 'label': '同步天数' + } + } + ] + } + ] + }, + { + 'component': 'VRow', + 'content': [ + { + 'component': 'VCol', + 'content': [ + { + 'component': 'VTextField', + 'props': { + 'model': 'tokens', + 'label': '用户 Token 列表', + 'placeholder': 'NeoDB 用户 Token,多个用英文逗号分隔' + } + } + ] + } + ] + }, + { + 'component': 'VRow', + 'content': [ + { + 'component': 'VCol', + 'props': { + 'cols': 12, + 'md': 6 + }, + 'content': [ + { + 'component': 'VSwitch', + 'props': { + 'model': 'clear', + 'label': '清理历史记录', + } + } + ] + } + ] + }, + { + 'component': 'VRow', + 'content': [ + { + 'component': 'VCol', + 'props': { + 'cols': 12, + }, + 'content': [ + { + 'component': 'VAlert', + 'props': { + 'type': 'info', + 'variant': 'tonal', + 'text': '获取 NeoDB Token 的方法请见:' + 'https://www.eallion.com/neodb_token/' + } + } + ] + } + ] + }, + ] + } + ], { + "enabled": False, + "notify": True, + "onlyonce": False, + "cron": "*/30 * * * *", + "days": 7, + "tokens": "", + "clear": False + } + + def get_page(self) -> List[dict]: + """ + 拼装插件详情页面,需要返回页面配置,同时附带数据 + """ + # 查询同步详情 + historys = self.get_data('history') + if not historys: + return [ + { + 'component': 'div', + 'text': '暂无数据', + 'props': { + 'class': 'text-center', + } + } + ] + # 数据按时间降序排序 + historys = sorted(historys, key=lambda x: x.get('time'), reverse=True) + # 拼装页面 + contents = [] + for history in historys: + title = history.get("title") + poster = history.get("poster") + mtype = history.get("type") + time_str = history.get("time") + neodb_id = history.get("neodb_id") + contents.append( + { + 'component': 'VCard', + 'content': [ + { + 'component': 'div', + 'props': { + 'class': 'd-flex justify-space-start flex-nowrap flex-row', + }, + 'content': [ + { + 'component': 'div', + 'content': [ + { + 'component': 'VImg', + 'props': { + 'src': poster, + 'height': 120, + 'width': 80, + 'aspect-ratio': '2/3', + 'class': 'object-cover shadow ring-gray-500', + 'cover': True + } + } + ] + }, + { + 'component': 'div', + 'content': [ + { + 'component': 'VCardSubtitle', + 'props': { + 'class': 'pa-2 font-bold break-words whitespace-break-spaces' + }, + 'content': [ + { + 'component': 'a', + 'props': { + 'href': f"https://neodb.social{neodb_id}", + 'target': '_blank' + }, + 'text': title + } + ] + }, + { + 'component': 'VCardText', + 'props': { + 'class': 'pa-0 px-2' + }, + 'text': f'类型:{mtype}' + }, + { + 'component': 'VCardText', + 'props': { + 'class': 'pa-0 px-2' + }, + 'text': f'时间:{time_str}' + } + ] + } + ] + } + ] + } + ) + + return [ + { + 'component': 'div', + 'props': { + 'class': 'grid gap-3 grid-info-card', + }, + 'content': contents + } + ] + + + def __update_config(self): + """ + 更新配置 + """ + self.update_config({ + "enabled": self._enabled, + "notify": self._notify, + "onlyonce": self._onlyonce, + "cron": self._cron, + "days": self._days, + "tokens": self._tokens, + "clear": self._clear + }) + + def stop_service(self): + """ + 退出插件 + """ + try: + if self._scheduler: + self._scheduler.remove_all_jobs() + if self._scheduler.running: + self._scheduler.shutdown() + self._scheduler = None + except Exception as e: + logger.error("退出插件失败:%s" % str(e)) + + def sync(self): + """ + 通过用户RSS同步豆瓣想看数据 + """ + if not self._tokens: + return + # 读取历史记录 + if self._clearflag: + history = [] + else: + history: List[dict] = self.get_data('history') or [] + # 遍历所有用户 + for token in self._tokens.split(","): + if not token: + continue + # 请求头含 Token + headers = {"Authorization": f"Bearer {token}"} + # 获取用户名 + username = self.__get_username(token) + # 同步每个 NeoDB 用户的数据 + logger.info(f"开始同步 NeoDB 用户 {username} 的想看数据 ...") + results = [] + try: + movie_response = requests.get(self._movie_url, headers=headers) + movie_response.raise_for_status() + tv_response = requests.get(self._tv_url, headers=headers) + tv_response.raise_for_status() + + try: + results = movie_response.json().get("data", []) + tv_response.json().get("data", []) + except ValueError: + logger.error("用户数据解析失败") + continue + except Exception as e: + logger.error(f"获取数据失败:{str(e)}") + continue + if not results: + logger.info(f"用户 {username} 没有想看数据") + continue + # 遍历该用户的所有想看条目 + for result in results: + try: + # Take the url as the unique identifier. For example: /movie/2fEdnxYWozPayayizQmk5M + item_id = result['item']['url'] + title = result['item']['title'] + category = result['item']['category'] + api_url = result['item']['api_url'] + # 判断是否在天数范围内 + if not self.__is_in_date_range(result.get("created_time"), title): + continue + # 检查是否处理过 + if not item_id or item_id in [h.get("neodb_id") for h in history]: + logger.info(f'标题:{title},NeoDB ID:{item_id} 已处理过') + continue + # 获取条目详细信息 item_info + try: + item_info = requests.get(f"https://neodb.social{api_url}").json() + except Exception as e: + logger.error(f"获取条目信息失败:{str(e)}") + continue + # 识别媒体信息 + meta = MetaInfo(title=title) + meta.year = item_info['year'] + meta.type = MediaType.MOVIE if category == "movie" else MediaType.TV + mediainfo = self.__get_mediainfo(meta, item_info) + if not mediainfo: + logger.warn(f'未识别到媒体信息,标题:{title}') + continue + # 查询缺失的媒体信息 + exist_flag, no_exists = self.downloadchain.get_no_exists_info(meta=meta, mediainfo=mediainfo) + if exist_flag: + logger.info(f'{mediainfo.title_year} 媒体库中已存在') + action = "exist" + else: + logger.info(f'{mediainfo.title_year} 媒体库中不存在,开始搜索 ...') + # 搜索 + contexts = self.searchchain.process(mediainfo=mediainfo, + no_exists=no_exists) + if not contexts: + logger.warn(f'{mediainfo.title_year} 未搜索到资源') + # 添加订阅 + self.subscribechain.add(title=mediainfo.title, + year=mediainfo.year, + mtype=mediainfo.type, + tmdbid=mediainfo.tmdb_id, + season=meta.begin_season, + exist_ok=True, + username="NeoDB 想看") + action = "subscribe" + else: + # 自动下载 + downloads, lefts = self.downloadchain.batch_download(contexts=contexts, no_exists=no_exists, + username="NeoDB 想看") + if downloads and not lefts: + # 全部下载完成 + logger.info(f'{mediainfo.title_year} 下载完成') + action = "download" + else: + # 未完成下载 + logger.info(f'{mediainfo.title_year} 未下载未完整,添加订阅 ...') + # 添加订阅 + self.subscribechain.add(title=mediainfo.title, + year=mediainfo.year, + mtype=mediainfo.type, + tmdbid=mediainfo.tmdb_id, + season=meta.begin_season, + exist_ok=True, + username="NeoDB 想看") + action = "subscribe" + # 存储历史记录 + history.append({ + "action": action, + "title": title, + "type": mediainfo.type.value, + "year": mediainfo.year, + "poster": mediainfo.get_poster_image(), + "overview": mediainfo.overview, + "tmdbid": mediainfo.tmdb_id, + "neodb_id": item_id, + "time": datetime.datetime.now().strftime("%Y-%m-%d %H:%M:%S") + }) + except Exception as err: + logger.error(f'同步用户 {username} NeoDB 想看数据出错:{str(err)}') + logger.info(f"用户 {username} NeoDB 想看同步完成") + # 保存历史记录 + self.save_data('history', history) + # 缓存只清理一次 + self._clearflag = False + + def __is_in_date_range(self, created_time_str: str, title): + """ + 检查是否在指定的天数范围内 + """ + if created_time_str: + try: + # 将字符串转换为 datetime 对象 + created_time = datetime.datetime.fromisoformat(created_time_str.replace("Z", "+00:00")) + # 计算时间差并检查是否超过了特定的天数 + if (datetime.datetime.now(datetime.timezone.utc) - created_time).days > float(self._days): + logger.info(f"已超过同步天数,标题:{title},标记时间:{created_time.date()}") + return False + except ValueError: + logger.error(f"日期时间格式错误:{created_time_str}") + return False + return True + + def __get_username(self, token: str): + """ + 获取 NeoDB 用户名 + """ + try: + user_info = requests.get(f"https://neodb.social/api/me", headers= {"Authorization": f"Bearer {token}"}) + user_info.raise_for_status() + try: + username = user_info.json().get("username") + except ValueError: + logger.error("用户数据解析失败") + return {} + except Exception as e: + logger.error(f"获取用户信息失败:{str(e)}") + return {} + + logger.info(f"成功获取用户名:{username}") + return username + + def __get_mediainfo(self, meta, item_info): + """ + 通过豆瓣或者 TMDB 获取媒体信息 + """ + external_resources = item_info.get("external_resources", []) + if not external_resources: + return None + category = item_info.get("category") # 'movie' 或 'tv' + # 初始化变量用于存储豆瓣 ID 和 TMDB ID + doubanid = "" + tmdbid = 0 + # 遍历 external_resources 列表 + for resource in external_resources: + url = resource.get("url") + if "douban.com" in url: + # 分割 URL 来获取豆瓣 ID + doubanid = url.split('/')[-2] + elif "themoviedb.org" in url: + # 根据 category 判断是 movie 还是 tv + if category == "movie": + # 分割 URL 来获取 movie 的 TMDB ID + tmdbid = int(url.split('/')[-1]) + elif category == "tv": + # 分割 URL 来获取 tv 的 TMDB ID + # 例如 "https://www.themoviedb.org/tv/225780/season/1",TMDB ID 是 225780 + tmdbid = int(url.split('/')[-3]) + return self.chain.recognize_media(meta=meta, doubanid=doubanid, tmdbid=tmdbid) + + @eventmanager.register(EventType.PluginAction) + def remote_sync(self, event: Event): + """ + NeoDB 想看同步 + """ + if event: + event_data = event.event_data + if not event_data or event_data.get("action") != "neodb_sync": + return + + logger.info("收到命令,开始执行 NeoDB 想看同步 ...") + self.post_message(channel=event.event_data.get("channel"), + title="开始同步 NeoDB 想看 ...", + userid=event.event_data.get("user")) + self.sync() + + if event: + self.post_message(channel=event.event_data.get("channel"), + title="同步 NeoDB 想看数据完成!", userid=event.event_data.get("user")) From ddc41bb6ab0fd73bfbcb1fcb4f2ddff872baf4f6 Mon Sep 17 00:00:00 2001 From: jxxghp Date: Tue, 27 Feb 2024 07:25:06 +0800 Subject: [PATCH 2/7] =?UTF-8?q?=E6=9B=B4=E6=96=B0=20=5F=5Finit=5F=5F.py?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- plugins/remoteidentifiers/__init__.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/plugins/remoteidentifiers/__init__.py b/plugins/remoteidentifiers/__init__.py index 8a9efee..5907ef4 100644 --- a/plugins/remoteidentifiers/__init__.py +++ b/plugins/remoteidentifiers/__init__.py @@ -23,7 +23,7 @@ class RemoteIdentifiers(_PluginBase): # 插件图标 plugin_icon = "words.png" # 插件版本 - plugin_version = "2.0" + plugin_version = "2.1" # 插件作者 plugin_author = "honue" # 作者主页 @@ -52,7 +52,7 @@ class RemoteIdentifiers(_PluginBase): self._onlyonce = config.get("onlyonce") or False self._cron = config.get("cron") or '30 4 * * *' self._file_urls = config.get("file_urls") or '' - self._flitter = config.get("flitter") or True + self._flitter = config.get("flitter") or False # config操作 self.systemconfig = SystemConfigOper() From ddea921a4db184060c5a740d8884c1e0ace81939 Mon Sep 17 00:00:00 2001 From: jxxghp Date: Tue, 27 Feb 2024 07:25:33 +0800 Subject: [PATCH 3/7] =?UTF-8?q?=E6=9B=B4=E6=96=B0=20package.json?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index e4b1414..7f9285e 100644 --- a/package.json +++ b/package.json @@ -370,7 +370,7 @@ "RemoteIdentifiers": { "name": "共享识别词", "description": "从Github、Etherpad等远程文件中获取共享识别词并应用。", - "version": "2.0", + "version": "2.1", "icon": "words.png", "author": "honue", "level": 1 From 9044b56e55993580776510eafa3446aef2936188 Mon Sep 17 00:00:00 2001 From: jxxghp Date: Tue, 27 Feb 2024 08:03:07 +0800 Subject: [PATCH 4/7] Add files via upload --- icons/neodb.png | Bin 46160 -> 7011 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/icons/neodb.png b/icons/neodb.png index 292f303494aa17c4644489158d1120576de4ea2a..64b36cdef611850180677a8fbd4f1e821ba79379 100644 GIT binary patch literal 7011 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 literal 46160 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 From f51efa7be89bc2bcb261b59595fc74ac26926a52 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=AB=A3=E8=AF=86?= Date: Tue, 27 Feb 2024 10:46:32 +0800 Subject: [PATCH 5/7] =?UTF-8?q?fix:=E4=BF=AE=E5=A4=8DMoviePilotUpdateNotif?= =?UTF-8?q?y=E6=8F=92=E4=BB=B6=E6=9C=AA=E6=B7=BB=E5=8A=A0github=5Ftoken?= =?UTF-8?q?=E8=AF=B7=E6=B1=82=E5=A4=B4,=E5=9B=A0=E9=99=90=E6=B5=81?= =?UTF-8?q?=E4=BC=9A=E5=AF=BC=E8=87=B4=E8=AF=B7=E6=B1=82=E5=A4=B1=E8=B4=A5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- package.json | 2 +- plugins/moviepilotupdatenotify/__init__.py | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/package.json b/package.json index 7f9285e..cfc35bc 100644 --- a/package.json +++ b/package.json @@ -250,7 +250,7 @@ "MoviePilotUpdateNotify": { "name": "MoviePilot更新推送", "description": "MoviePilot推送release更新通知、自动重启。", - "version": "1.1", + "version": "1.2", "icon": "Moviepilot_A.png", "author": "thsrite", "level": 1 diff --git a/plugins/moviepilotupdatenotify/__init__.py b/plugins/moviepilotupdatenotify/__init__.py index 46d9e5b..0fb7f6a 100644 --- a/plugins/moviepilotupdatenotify/__init__.py +++ b/plugins/moviepilotupdatenotify/__init__.py @@ -97,7 +97,7 @@ class MoviePilotUpdateNotify(_PluginBase): """ 获取最新版本 """ - version_res = RequestUtils(proxies=settings.PROXY).get_res( + version_res = RequestUtils(proxies=settings.PROXY, headers=settings.GITHUB_HEADERS).get_res( "https://api.github.com/repos/jxxghp/MoviePilot/releases/latest") if version_res: ver_json = version_res.json() From 2946fec671f4e8a5b7c118fb420a3902a4f49459 Mon Sep 17 00:00:00 2001 From: jxxghp Date: Tue, 27 Feb 2024 18:55:57 +0800 Subject: [PATCH 6/7] fix icon --- icons/NeoDB.jpeg | Bin 0 -> 8340 bytes icons/neodb.png | Bin 7011 -> 0 bytes package.json | 2 +- plugins/neodbsync/__init__.py | 2 +- 4 files changed, 2 insertions(+), 2 deletions(-) create mode 100644 icons/NeoDB.jpeg delete mode 100644 icons/neodb.png diff --git a/icons/NeoDB.jpeg b/icons/NeoDB.jpeg new file mode 100644 index 0000000000000000000000000000000000000000..5e6965b5ba3db4b5799d734e525daf3f7d727cc7 GIT binary patch literal 8340 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 literal 0 HcmV?d00001 diff --git a/icons/neodb.png b/icons/neodb.png deleted file mode 100644 index 64b36cdef611850180677a8fbd4f1e821ba79379..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 7011 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 diff --git a/package.json b/package.json index 7f9285e..3e424d9 100644 --- a/package.json +++ b/package.json @@ -379,7 +379,7 @@ "name": "NeoDB 想看", "description": "同步 NeoDB 想看条目,自动添加订阅", "version": "1.0", - "icon": "neodb.png", + "icon": "NeoDB.jpeg", "author": "hcplantern", "level": 1 } diff --git a/plugins/neodbsync/__init__.py b/plugins/neodbsync/__init__.py index e4319e0..d879e06 100644 --- a/plugins/neodbsync/__init__.py +++ b/plugins/neodbsync/__init__.py @@ -30,7 +30,7 @@ class NeoDBSync(_PluginBase): # 插件描述 plugin_desc = "同步 NeoDB 想看数据,自动添加订阅。" # 插件图标 - plugin_icon = "neodb.png" + plugin_icon = "NeoDB.jpeg" # 插件版本 plugin_version = "1.0" # 插件作者 From 8e1c971fd2b5a9e2373fe4943b507768f18c4add Mon Sep 17 00:00:00 2001 From: jxxghp Date: Tue, 27 Feb 2024 20:51:32 +0800 Subject: [PATCH 7/7] fix #74 --- plugins/moviepilotupdatenotify/__init__.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/plugins/moviepilotupdatenotify/__init__.py b/plugins/moviepilotupdatenotify/__init__.py index 0fb7f6a..bf9eb79 100644 --- a/plugins/moviepilotupdatenotify/__init__.py +++ b/plugins/moviepilotupdatenotify/__init__.py @@ -22,7 +22,7 @@ class MoviePilotUpdateNotify(_PluginBase): # 插件图标 plugin_icon = "Moviepilot_A.png" # 插件版本 - plugin_version = "1.1" + plugin_version = "1.2" # 插件作者 plugin_author = "thsrite" # 作者主页