From 0efa418250a6472f680848ca7df967270878cc97 Mon Sep 17 00:00:00 2001 From: thsrite Date: Wed, 15 May 2024 09:22:29 +0800 Subject: [PATCH 1/3] =?UTF-8?q?fix=20=E5=AA=92=E4=BD=93=E5=88=A0=E9=99=A4?= =?UTF-8?q?=E6=8F=92=E4=BB=B6=E6=94=AF=E6=8C=81=E6=89=8B=E5=8A=A8=E5=88=A0?= =?UTF-8?q?=E9=99=A4=E8=AE=A2=E9=98=85=E5=8E=86=E5=8F=B2=E8=AE=B0=E5=BD=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- package.json | 7 +++-- plugins/mediasyncdel/__init__.py | 45 +++++++++++++++++++++++++++++--- 2 files changed, 47 insertions(+), 5 deletions(-) diff --git a/package.json b/package.json index 7b345d8..ef11b85 100644 --- a/package.json +++ b/package.json @@ -125,10 +125,13 @@ "name": "媒体文件同步删除", "description": "同步删除历史记录、源文件和下载任务。", "labels": "文件整理", - "version": "1.4", + "version": "1.5", "icon": "mediasyncdel.png", "author": "thsrite", - "level": 1 + "level": 1, + "history": { + "v1.5": "支持手动删除订阅历史记录(本次更新之后的历史)" + } }, "CustomHosts": { "name": "自定义Hosts", diff --git a/plugins/mediasyncdel/__init__.py b/plugins/mediasyncdel/__init__.py index 43bed4f..1a9d651 100644 --- a/plugins/mediasyncdel/__init__.py +++ b/plugins/mediasyncdel/__init__.py @@ -31,7 +31,7 @@ class MediaSyncDel(_PluginBase): # 插件图标 plugin_icon = "mediasyncdel.png" # 插件版本 - plugin_version = "1.4" + plugin_version = "1.5" # 插件作者 plugin_author = "thsrite" # 作者主页 @@ -105,7 +105,29 @@ class MediaSyncDel(_PluginBase): pass def get_api(self) -> List[Dict[str, Any]]: - pass + return [ + { + "path": "/delete_history", + "endpoint": self.delete_history, + "methods": ["GET"], + "summary": "删除历史记录" + } + ] + + def delete_history(self, key: str, apikey: str): + """ + 删除历史记录 + """ + if apikey != settings.API_TOKEN: + return schemas.Response(success=False, message="API密钥错误") + # 历史记录 + historys = self.get_data('history') + if not historys: + return schemas.Response(success=False, message="未找到历史记录") + # 删除指定记录 + historys = [h for h in historys if f"{h.get("title")}:{h.get("tmdb_id")}" != key] + self.save_data('history', historys) + return schemas.Response(success=True, message="删除成功") def get_service(self) -> List[Dict[str, Any]]: """ @@ -535,6 +557,22 @@ class MediaSyncDel(_PluginBase): { 'component': 'VCard', 'content': [ + { + "component": "VDialogCloseBtn", + "props": { + 'innerClass': 'absolute top-0 right-0', + }, + 'events': { + 'click': { + 'api': 'plugin/MediaSyncDel/delete_history', + 'method': 'get', + 'params': { + 'key': f"{title}:{tmdbid}", + 'apikey': settings.API_TOKEN + } + } + }, + }, { 'component': 'div', 'props': { @@ -833,7 +871,8 @@ class MediaSyncDel(_PluginBase): "season": season_num if season_num and str(season_num).isdigit() else None, "episode": episode_num if episode_num and str(episode_num).isdigit() else None, "image": poster_image, - "del_time": time.strftime("%Y-%m-%d %H:%M:%S", time.localtime(time.time())) + "del_time": time.strftime("%Y-%m-%d %H:%M:%S", time.localtime(time.time())), + "tmdb_id": tmdb_id }) # 保存历史 From 4dba9b2663fa05d83a1d3e9c9a417841aabae8d1 Mon Sep 17 00:00:00 2001 From: thsrite Date: Wed, 15 May 2024 09:59:47 +0800 Subject: [PATCH 2/3] fix --- plugins/mediasyncdel/__init__.py | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/plugins/mediasyncdel/__init__.py b/plugins/mediasyncdel/__init__.py index 1a9d651..5d71621 100644 --- a/plugins/mediasyncdel/__init__.py +++ b/plugins/mediasyncdel/__init__.py @@ -9,6 +9,7 @@ from typing import List, Tuple, Dict, Any, Optional from apscheduler.schedulers.background import BackgroundScheduler from apscheduler.triggers.cron import CronTrigger +from app import schemas from app.chain.transfer import TransferChain from app.core.config import settings from app.core.event import eventmanager, Event @@ -31,7 +32,7 @@ class MediaSyncDel(_PluginBase): # 插件图标 plugin_icon = "mediasyncdel.png" # 插件版本 - plugin_version = "1.5" + plugin_version = "1.4" # 插件作者 plugin_author = "thsrite" # 作者主页 @@ -110,7 +111,7 @@ class MediaSyncDel(_PluginBase): "path": "/delete_history", "endpoint": self.delete_history, "methods": ["GET"], - "summary": "删除历史记录" + "summary": "删除订阅历史记录" } ] @@ -125,7 +126,7 @@ class MediaSyncDel(_PluginBase): if not historys: return schemas.Response(success=False, message="未找到历史记录") # 删除指定记录 - historys = [h for h in historys if f"{h.get("title")}:{h.get("tmdb_id")}" != key] + historys = [h for h in historys if f"{h.get('title')}:{h.get('tmdb_id')}" != key] self.save_data('history', historys) return schemas.Response(success=True, message="删除成功") @@ -470,6 +471,7 @@ class MediaSyncDel(_PluginBase): for history in historys: htype = history.get("type") title = history.get("title") + tmdb_id = history.get("tmdb_id") year = history.get("year") season = history.get("season") episode = history.get("episode") @@ -567,7 +569,7 @@ class MediaSyncDel(_PluginBase): 'api': 'plugin/MediaSyncDel/delete_history', 'method': 'get', 'params': { - 'key': f"{title}:{tmdbid}", + 'key': f"{title}:{tmdb_id}", 'apikey': settings.API_TOKEN } } From bb7b217e70396df372fa950f3e63c177f5cbf8ab Mon Sep 17 00:00:00 2001 From: thsrite Date: Wed, 15 May 2024 10:04:52 +0800 Subject: [PATCH 3/3] fix --- plugins/mediasyncdel/__init__.py | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/plugins/mediasyncdel/__init__.py b/plugins/mediasyncdel/__init__.py index 5d71621..c4dea6c 100644 --- a/plugins/mediasyncdel/__init__.py +++ b/plugins/mediasyncdel/__init__.py @@ -126,7 +126,7 @@ class MediaSyncDel(_PluginBase): if not historys: return schemas.Response(success=False, message="未找到历史记录") # 删除指定记录 - historys = [h for h in historys if f"{h.get('title')}:{h.get('tmdb_id')}" != key] + historys = [h for h in historys if h.get("unique") != key] self.save_data('history', historys) return schemas.Response(success=True, message="删除成功") @@ -471,7 +471,7 @@ class MediaSyncDel(_PluginBase): for history in historys: htype = history.get("type") title = history.get("title") - tmdb_id = history.get("tmdb_id") + unique = history.get("unique") year = history.get("year") season = history.get("season") episode = history.get("episode") @@ -569,7 +569,7 @@ class MediaSyncDel(_PluginBase): 'api': 'plugin/MediaSyncDel/delete_history', 'method': 'get', 'params': { - 'key': f"{title}:{tmdb_id}", + 'key': unique, 'apikey': settings.API_TOKEN } } @@ -874,7 +874,7 @@ class MediaSyncDel(_PluginBase): "episode": episode_num if episode_num and str(episode_num).isdigit() else None, "image": poster_image, "del_time": time.strftime("%Y-%m-%d %H:%M:%S", time.localtime(time.time())), - "tmdb_id": tmdb_id + "unique": f"{media_name}:{tmdb_id}:{time.strftime('%Y-%m-%d %H:%M:%S', time.localtime(time.time()))}" }) # 保存历史