Merge pull request #89 from thsrite/main

This commit is contained in:
jxxghp 2023-08-12 15:33:20 +08:00 committed by GitHub
commit a2ac1b543c
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
5 changed files with 38 additions and 11 deletions

View File

@ -29,3 +29,16 @@ async def webhook_message(background_tasks: BackgroundTasks,
args = request.query_params
background_tasks.add_task(start_webhook_chain, body, form, args)
return schemas.Response(success=True)
@router.get("/", summary="Webhook消息响应", response_model=schemas.Response)
async def webhook_message(background_tasks: BackgroundTasks,
token: str, request: Request) -> Any:
"""
Webhook响应
"""
if token != settings.API_TOKEN:
return schemas.Response(success=False, message="token认证不通过")
args = request.query_params
background_tasks.add_task(start_webhook_chain, None, None, args)
return schemas.Response(success=True)

View File

@ -1,3 +1,4 @@
import json
from pathlib import Path
from typing import Optional, Tuple, Union, Any, List, Generator
@ -40,7 +41,11 @@ class EmbyModule(_ModuleBase):
:param args: 请求参数
:return: 字典解析为消息时需要包含titletextimage
"""
return self.emby.get_webhook_message(form.get("data"))
if form and form.get("data"):
result = form.get("data")
else:
result = json.dumps(dict(args))
return self.emby.get_webhook_message(result)
def media_exists(self, mediainfo: MediaInfo, itemid: str = None) -> Optional[ExistMediaInfo]:
"""

View File

@ -591,6 +591,14 @@ class Emby(metaclass=Singleton):
eventItem.client = message.get('Session').get('Client')
if message.get("User"):
eventItem.user_name = message.get("User").get('Name')
if message.get("item_isvirtual"):
eventItem.item_isvirtual = message.get("item_isvirtual")
eventItem.item_type = message.get("item_type")
eventItem.item_name = message.get("item_name")
eventItem.item_path = message.get("item_path")
eventItem.tmdb_id = message.get("tmdb_id")
eventItem.season_id = message.get("season_id")
eventItem.episode_id = message.get("episode_id")
# 获取消息图片
if eventItem.item_id:

View File

@ -391,12 +391,12 @@ class MediaSyncDel(_PluginBase):
if not self._enabled:
return
event_data = event.event_data
event_type = event_data.get("event_type")
event_type = event_data.event
if not event_type or str(event_type) != 'media_del':
return
# 是否虚拟标识
item_isvirtual = event_data.get("item_isvirtual")
item_isvirtual = event_data.item_isvirtual
if not item_isvirtual:
logger.error("item_isvirtual参数未配置为防止误删除暂停插件运行")
self.update_config({
@ -417,24 +417,24 @@ class MediaSyncDel(_PluginBase):
history = self.get_data('history') or []
# 媒体类型
media_type = event_data.get("media_type")
media_type = event_data.item_type
# 媒体名称
media_name = event_data.get("media_name")
media_name = event_data.item_name
# 媒体路径
media_path = event_data.get("media_path")
media_path = event_data.item_path
# tmdb_id
tmdb_id = event_data.get("tmdb_id")
tmdb_id = event_data.tmdb_id
# 季数
season_num = event_data.get("season_num")
season_num = event_data.season_id
if season_num and str(season_num).isdigit() and int(season_num) < 10:
season_num = f'S0{season_num}'
else:
elif season_num:
season_num = f'S{season_num}'
# 集数
episode_num = event_data.get("episode_num")
episode_num = event_data.episode_id
if episode_num and str(episode_num).isdigit() and int(episode_num) < 10:
episode_num = f'E0{episode_num}'
else:
elif episode_num:
episode_num = f'E{episode_num}'
if not media_type:

View File

@ -133,3 +133,4 @@ class WebhookEventInfo(BaseModel):
image_url: Optional[str] = None
item_favorite: Optional[bool] = None
save_reason: Optional[str] = None
item_isvirtual: Optional[bool] = None