This commit is contained in:
thsrite 2023-08-07 13:03:04 +08:00
parent ce243502c2
commit 76849e11ca
5 changed files with 28 additions and 24 deletions

View File

@ -16,7 +16,7 @@ from app.core.module import ModuleManager
from app.log import logger from app.log import logger
from app.schemas import TransferInfo, TransferTorrent, ExistMediaInfo, DownloadingTorrent, CommingMessage, Notification, \ from app.schemas import TransferInfo, TransferTorrent, ExistMediaInfo, DownloadingTorrent, CommingMessage, Notification, \
WebhookEventInfo WebhookEventInfo
from app.schemas.types import TorrentStatus, MediaType, MediaImageType from app.schemas.types import TorrentStatus, MediaType, MediaImageType, EventType
from app.utils.object import ObjectUtils from app.utils.object import ObjectUtils
@ -330,6 +330,15 @@ class ChainBase(metaclass=ABCMeta):
:param message: 消息体 :param message: 消息体
:return: 成功或失败 :return: 成功或失败
""" """
# 发送事件
self.eventmanager.send_event(etype=EventType.NoticeMessage,
data={
"channel": message.channel,
"title": message.title,
"text": message.text,
"image": message.image,
"userid": message.userid,
})
return self.run_module("post_message", message=message) return self.run_module("post_message", message=message)
def post_medias_message(self, message: Notification, medias: List[MediaInfo]) -> Optional[bool]: def post_medias_message(self, message: Notification, medias: List[MediaInfo]) -> Optional[bool]:

View File

@ -3,13 +3,11 @@ from typing import Optional, Union, List, Tuple, Any
from app.core.config import settings from app.core.config import settings
from app.core.context import Context, MediaInfo from app.core.context import Context, MediaInfo
from app.core.event import EventManager
from app.log import logger from app.log import logger
from app.modules import _ModuleBase, checkMessage from app.modules import _ModuleBase, checkMessage
from app.modules.wechat.WXBizMsgCrypt3 import WXBizMsgCrypt from app.modules.wechat.WXBizMsgCrypt3 import WXBizMsgCrypt
from app.modules.wechat.wechat import WeChat from app.modules.wechat.wechat import WeChat
from app.schemas import MessageChannel, CommingMessage, Notification from app.schemas import MessageChannel, CommingMessage, Notification
from app.schemas.types import EventType
from app.utils.dom import DomUtils from app.utils.dom import DomUtils
@ -123,14 +121,6 @@ class WechatModule(_ModuleBase):
:param message: 消息内容 :param message: 消息内容
:return: 成功或失败 :return: 成功或失败
""" """
# 发送事件
EventManager().send_event(etype=EventType.WechatMessage,
data={
"title": message.title,
"text": message.text,
"image": message.image,
"userid": message.userid,
})
return self.wechat.send_msg(title=message.title, text=message.text, return self.wechat.send_msg(title=message.title, text=message.text,
image=message.image, userid=message.userid) image=message.image, userid=message.userid)

View File

@ -5,7 +5,7 @@ from datetime import datetime
from app.core.config import settings from app.core.config import settings
from app.plugins import _PluginBase from app.plugins import _PluginBase
from app.core.event import eventmanager from app.core.event import eventmanager
from app.schemas.types import EventType from app.schemas.types import EventType, MessageChannel
from app.utils.http import RequestUtils from app.utils.http import RequestUtils
from typing import Any, List, Dict, Tuple, Optional from typing import Any, List, Dict, Tuple, Optional
from app.log import logger from app.log import logger
@ -13,7 +13,7 @@ from app.log import logger
class MessageForward(_PluginBase): class MessageForward(_PluginBase):
# 插件名称 # 插件名称
plugin_name = "WeChat消息转发" plugin_name = "消息转发"
# 插件描述 # 插件描述
plugin_desc = "根据正则转发通知到其他WeChat应用。" plugin_desc = "根据正则转发通知到其他WeChat应用。"
# 插件图标 # 插件图标
@ -107,7 +107,7 @@ class MessageForward(_PluginBase):
'props': { 'props': {
'model': 'wechat', 'model': 'wechat',
'rows': '3', 'rows': '3',
'label': 'wechat应用配置', 'label': '应用配置',
'placeholder': 'appid:corpid:appsecret一行一个配置' 'placeholder': 'appid:corpid:appsecret一行一个配置'
} }
} }
@ -130,7 +130,7 @@ class MessageForward(_PluginBase):
'model': 'pattern', 'model': 'pattern',
'rows': '3', 'rows': '3',
'label': '正则配置', 'label': '正则配置',
'placeholder': '对应上方wechat配置,一行一个,一一对应' 'placeholder': '对应上方应用配置,一行一个,一一对应'
} }
} }
] ]
@ -148,7 +148,7 @@ class MessageForward(_PluginBase):
def get_page(self) -> List[dict]: def get_page(self) -> List[dict]:
pass pass
@eventmanager.register(EventType.WechatMessage) @eventmanager.register(EventType.NoticeMessage)
def send(self, event): def send(self, event):
""" """
消息转发 消息转发
@ -158,6 +158,10 @@ class MessageForward(_PluginBase):
# 消息体 # 消息体
data = event.event_data data = event.event_data
channel = data['channel']
if channel and channel != MessageChannel.Wechat:
return
title = data['title'] title = data['title']
text = data['text'] text = data['text']
image = data['image'] image = data['image']

View File

@ -7,11 +7,11 @@ from typing import Any, List, Dict, Tuple
from app.log import logger from app.log import logger
class NastoolsSync(_PluginBase): class NAStoolSync(_PluginBase):
# 插件名称 # 插件名称
plugin_name = "历史记录同步" plugin_name = "历史记录同步"
# 插件描述 # 插件描述
plugin_desc = "同步NasTools历史记录到MoviePilot。" plugin_desc = "同步NAStool历史记录到MoviePilot。"
# 插件图标 # 插件图标
plugin_icon = "sync.png" plugin_icon = "sync.png"
# 主题色 # 主题色
@ -163,12 +163,13 @@ class NastoolsSync(_PluginBase):
AND t.TYPE = d.TYPE;''' AND t.TYPE = d.TYPE;'''
cursor.execute(sql) cursor.execute(sql)
nt_historys = cursor.fetchall() nt_historys = cursor.fetchall()
cursor.close()
if not nt_historys: if not nt_historys:
logger.error("未获取到NasTools数据库文件中的转移历史,请检查数据库路径是正确") logger.error("未获取到NAStool数据库文件中的转移历史,请检查数据库路径是正确")
return return
logger.info(f"获取到NasTools转移记录 {len(nt_historys)}") logger.info(f"获取到NAStool转移记录 {len(nt_historys)}")
return nt_historys return nt_historys
def get_state(self) -> bool: def get_state(self) -> bool:
@ -224,7 +225,7 @@ class NastoolsSync(_PluginBase):
'component': 'VTextField', 'component': 'VTextField',
'props': { 'props': {
'model': 'nt_db_path', 'model': 'nt_db_path',
'label': 'NasTools数据库user.db路径', 'label': 'NAStool数据库user.db路径',
} }
} }
] ]
@ -245,7 +246,7 @@ class NastoolsSync(_PluginBase):
'props': { 'props': {
'model': 'path', 'model': 'path',
'label': '路径映射', 'label': '路径映射',
'placeholder': 'NasTools路径:MoviePilot路径一行一个' 'placeholder': 'NAStool路径:MoviePilot路径一行一个'
} }
} }
] ]

View File

@ -36,8 +36,8 @@ class EventType(Enum):
MediaDeleted = "media.deleted" MediaDeleted = "media.deleted"
# 用户外来消息 # 用户外来消息
UserMessage = "user.message" UserMessage = "user.message"
# wechat消息 # 通知消息
WechatMessage = "wechat.message" NoticeMessage = "notice.message"
# 系统配置Key字典 # 系统配置Key字典