fix 修复主程序修改事件任务后,同步删除未收到通知的问题

This commit is contained in:
thsrite
2024-11-22 11:09:56 +08:00
parent 8d025e8393
commit b23083faa0
4 changed files with 57 additions and 22 deletions

View File

@@ -631,12 +631,13 @@
"name": "云盘同步删除",
"description": "媒体库删除软连接文件后,同步删除云盘文件。",
"labels": "云盘",
"version": "1.5.8",
"version": "1.5.9",
"icon": "clouddisk.png",
"author": "thsrite",
"level": 2,
"v2": true,
"history": {
"v1.5.9": "修复主程序修改事件任务后,同步删除未收到通知的问题",
"v1.5.8": "修复删除strm后删除本地文件",
"v1.5.6": "修复媒体库路径映射",
"v1.5.5": "兼容strm删除",

View File

@@ -178,11 +178,12 @@
"name": "媒体文件同步删除",
"description": "同步删除历史记录、源文件和下载任务。",
"labels": "媒体库,文件整理",
"version": "1.8.6",
"version": "1.8.7",
"icon": "mediasyncdel.png",
"author": "thsrite",
"level": 1,
"history": {
"v1.8.7": "修复主程序修改事件任务后,同步删除未收到通知的问题",
"v1.8.6": "修复删除源文件",
"v1.8.4": "修复暂停种子失败",
"v1.8.3": "修复源文件删除",

View File

@@ -25,7 +25,7 @@ class MediaSyncDel(_PluginBase):
# 插件图标
plugin_icon = "mediasyncdel.png"
# 插件版本
plugin_version = "1.8.6"
plugin_version = "1.8.7"
# 插件作者
plugin_author = "thsrite"
# 作者主页
@@ -709,6 +709,39 @@ class MediaSyncDel(_PluginBase):
season_num=season_num,
episode_num=episode_num)
@eventmanager.register(EventType.PluginAction)
def sync_del(self, event: Event = None):
"""
扫描
"""
if not self._enabled or not event:
return
event_data = event.event_data
if not event_data or event_data.get("action") != "media_sync_del":
return
logger.info(f"收到媒体同步删除请求:{event_data}")
# 媒体类型
media_type = event_data.get("media_type")
# 媒体名称
media_name = event_data.get("media_name")
# 媒体路径
media_path = event_data.get("media_path")
# tmdb_id
tmdb_id = event_data.get("tmdb_id")
# 季数
season_num = event_data.get("season_num")
# 集数
episode_num = event_data.get("episode_num")
self.__sync_del(media_type=media_type,
media_name=media_name,
media_path=media_path,
tmdb_id=tmdb_id,
season_num=season_num,
episode_num=episode_num)
def __sync_del(self, media_type: str, media_name: str, media_path: str,
tmdb_id: int, season_num: str, episode_num: str):
if not media_type:

View File

@@ -21,7 +21,7 @@ class CloudSyncDel(_PluginBase):
# 插件图标
plugin_icon = "clouddisk.png"
# 插件版本
plugin_version = "1.5.8"
plugin_version = "1.5.9"
# 插件作者
plugin_author = "thsrite"
# 作者主页
@@ -109,15 +109,15 @@ class CloudSyncDel(_PluginBase):
elif Path(local_path).is_file():
Path(local_path).unlink() # 删除文件
logger.info(f"获取到本地路径 {local_path}, 通知媒体库同步删除插件删除")
eventItem = schemas.WebhookEventInfo(event="media_del", channel="emby")
eventItem.item_type = media_type
eventItem.item_name = media_name
eventItem.item_path = local_path
eventItem.tmdb_id = tmdb_id
eventItem.season_id = season_num
eventItem.episode_id = episode_num
eventItem.item_isvirtual = "False"
self.eventmanager.send_event(EventType.WebhookMessage, eventItem)
self.eventmanager.send_event(EventType.PluginAction, {
'media_type': media_type,
'media_name': media_name,
'media_path': local_path,
'tmdb_id': tmdb_id,
'season_num': season_num,
'episode_num': episode_num,
'action': 'media_sync_del'
})
is_local = True
else:
if Path(local_path).parent.exists():
@@ -135,15 +135,15 @@ class CloudSyncDel(_PluginBase):
logger.info(f"本地文件 {file} 已删除")
if Path(file).suffix in settings.RMT_MEDIAEXT:
logger.info(f"获取到本地路径 {file}, 通知媒体库同步删除插件删除")
eventItem = schemas.WebhookEventInfo(event="media_del", channel="emby")
eventItem.item_type = media_type
eventItem.item_name = media_name
eventItem.item_path = file
eventItem.tmdb_id = tmdb_id
eventItem.season_id = season_num
eventItem.episode_id = episode_num
eventItem.item_isvirtual = "False"
self.eventmanager.send_event(EventType.WebhookMessage, eventItem)
self.eventmanager.send_event(EventType.PluginAction, {
'media_type': media_type,
'media_name': media_name,
'media_path': str(file),
'tmdb_id': tmdb_id,
'season_num': season_num,
'episode_num': episode_num,
'action': 'media_sync_del'
})
# 删除thumb图片
thumb_file = Path(local_path).parent / (Path(local_path).stem + "-thumb.jpg")