add notification link

This commit is contained in:
jxxghp
2024-06-08 10:47:50 +08:00
parent 748de0ff00
commit e05c643a6b
21 changed files with 148 additions and 54 deletions

View File

@ -103,7 +103,8 @@ class VoceChatModule(_ModuleBase):
:param message: 消息内容
:return: 成功或失败
"""
self.vocechat.send_msg(title=message.title, text=message.text, userid=message.userid)
self.vocechat.send_msg(title=message.title, text=message.text,
userid=message.userid, link=message.link)
@checkMessage(MessageChannel.VoceChat)
def post_medias_message(self, message: Notification, medias: List[MediaInfo]) -> Optional[bool]:
@ -116,7 +117,8 @@ class VoceChatModule(_ModuleBase):
# 先发送标题
self.vocechat.send_msg(title=message.title, userid=message.userid)
# 再发送内容
return self.vocechat.send_medias_msg(title=message.title, medias=medias, userid=message.userid)
return self.vocechat.send_medias_msg(title=message.title, medias=medias,
userid=message.userid, link=message.link)
@checkMessage(MessageChannel.VoceChat)
def post_torrents_message(self, message: Notification, torrents: List[Context]) -> Optional[bool]:
@ -126,7 +128,8 @@ class VoceChatModule(_ModuleBase):
:param torrents: 种子列表
:return: 成功或失败
"""
return self.vocechat.send_torrents_msg(title=message.title, torrents=torrents, userid=message.userid)
return self.vocechat.send_torrents_msg(title=message.title, torrents=torrents,
userid=message.userid, link=message.link)
def register_commands(self, commands: Dict[str, dict]):
pass

View File

@ -58,12 +58,14 @@ class VoceChat:
if result and result.status_code == 200:
return result.json()
def send_msg(self, title: str, text: str = "", userid: str = None) -> Optional[bool]:
def send_msg(self, title: str, text: str = "",
userid: str = None, link: str = None) -> Optional[bool]:
"""
微信消息发送入口,支持文本、图片、链接跳转、指定发送对象
:param title: 消息标题
:param text: 消息内容
:param userid: 消息发送对象的ID为空则发给所有人
:param link: 消息链接
:return: 发送状态,错误信息
"""
if not self._client:
@ -79,6 +81,9 @@ class VoceChat:
else:
caption = f"**{title}**"
if link:
caption = f"{caption}\n[查看详情]({link})"
if userid:
chat_id = userid
else:
@ -90,7 +95,8 @@ class VoceChat:
logger.error(f"发送消息失败:{msg_e}")
return False
def send_medias_msg(self, title: str, medias: List[MediaInfo], userid: str = "") -> Optional[bool]:
def send_medias_msg(self, title: str, medias: List[MediaInfo],
userid: str = "", link: str = None) -> Optional[bool]:
"""
发送列表类消息
"""
@ -115,6 +121,9 @@ class VoceChat:
f"类型:{media.type.value}")
index += 1
if link:
caption = f"{caption}\n[查看详情]({link})"
if userid:
chat_id = userid
else:
@ -127,7 +136,7 @@ class VoceChat:
return False
def send_torrents_msg(self, torrents: List[Context],
userid: str = "", title: str = "") -> Optional[bool]:
userid: str = "", title: str = "", link: str = None) -> Optional[bool]:
"""
发送列表消息
"""
@ -155,6 +164,9 @@ class VoceChat:
f"{StringUtils.str_filesize(torrent.size)} {free} {seeder}"
index += 1
if link:
caption = f"{caption}\n[查看详情]({link})"
if userid:
chat_id = userid
else: