fix(WebHook): add compatibility with MoviePilot v2

This commit is contained in:
InfinityPacer
2024-12-15 00:07:25 +08:00
parent 0cd2ecde6d
commit 0368938004

View File

@@ -1,9 +1,11 @@
from app.plugins import _PluginBase
from typing import Any, List, Dict, Tuple
from app.core.config import settings
from app.core.event import eventmanager
from app.log import logger
from app.plugins import _PluginBase
from app.schemas.types import EventType
from app.utils.http import RequestUtils
from typing import Any, List, Dict, Tuple
from app.log import logger
class WebHook(_PluginBase):
@@ -134,6 +136,9 @@ class WebHook(_PluginBase):
if not self._enabled or not self._webhook_url:
return
if not event or not event.event_type:
return
def __to_dict(_event):
"""
递归将对象转换为字典
@@ -159,21 +164,27 @@ class WebHook(_PluginBase):
else:
return str(_event)
version = getattr(settings, "VERSION_FLAG", "v1")
event_type = event.event_type if version == "v1" else event.event_type.value
event_info = {
"type": event.event_type,
"type": event_type,
"data": __to_dict(event.event_data)
}
if self._method == 'POST':
ret = RequestUtils(content_type="application/json").post_res(self._webhook_url, json=event_info)
else:
ret = RequestUtils().get_res(self._webhook_url, params=event_info)
if ret:
logger.info("发送成功:%s" % self._webhook_url)
elif ret is not None:
logger.error(f"发送失败,状态码:{ret.status_code},返回信息:{ret.text} {ret.reason}")
else:
logger.error("发送失败,未获取到返回信息")
try:
if self._method == 'POST':
ret = RequestUtils(content_type="application/json").post_res(self._webhook_url, json=event_info)
else:
ret = RequestUtils().get_res(self._webhook_url, params=event_info)
if ret:
logger.info(f"发送成功:{self._webhook_url}")
elif ret is not None:
logger.error(f"发送失败,状态码:{ret.status_code},返回信息:{ret.text} {ret.reason}")
else:
logger.error("发送失败,未获取到返回信息")
except Exception as e:
logger.error(f"发送请求时发生异常:{e}")
def stop_service(self):
"""