Skip to content

Commit 88601a1

Browse files
authored
Merge pull request #48 from Cassius0924/improve-notifier
[Improvement] 优化收到命令提醒
2 parents fd342f7 + e2c97df commit 88601a1

File tree

6 files changed

+33
-40
lines changed

6 files changed

+33
-40
lines changed

wechatter/app/routers/wechat.py

+3-3
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@
1010
from wechatter.message import MessageHandler
1111
from wechatter.message_forwarder import MessageForwarder
1212
from wechatter.models.message import Message
13-
from wechatter.notifier import Notifier
13+
from wechatter.sender import notify_logged_in, notify_logged_out
1414
from wechatter.sqlite.sqlite_manager import SqliteManager
1515

1616
router = APIRouter()
@@ -79,10 +79,10 @@ def handle_system_event(content: str) -> None:
7979
# 判断是否为机器人登录消息
8080
if content_dict["event"] == "login":
8181
print("机器人登录成功")
82-
Notifier.notify_logged_in()
82+
notify_logged_in()
8383
elif content_dict["event"] == "logout":
8484
print("机器人已退出登录")
85-
Notifier.notify_logged_out()
85+
notify_logged_out()
8686
elif content_dict["event"] == "error":
8787
pass
8888
else:

wechatter/commands/_commands/copilot_gpt4.py

+3-1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,3 @@
1-
# 使用 Copilot-GPT4-Server 回复
21
from typing import List, Union
32

43
from loguru import logger
@@ -106,6 +105,7 @@ def _gptx(model: str, to: SendTo, message: str = "") -> None:
106105
chat_info = CopilotGPT4.get_chating_chat_info(wx_id, model)
107106
if message == "": # /gpt4
108107
# 判断对话是否有效
108+
_send_text_msg(to, "正在创建新对话...")
109109
if chat_info is None or CopilotGPT4.is_chat_valid(chat_info):
110110
CopilotGPT4.create_chat(wx_id=wx_id, model=model)
111111
logger.info("创建新对话成功")
@@ -115,6 +115,7 @@ def _gptx(model: str, to: SendTo, message: str = "") -> None:
115115
_send_text_msg(to, "对话未开始,继续上一次对话")
116116
else: # /gpt4 <message>
117117
# 如果没有对话记录,则创建新对话
118+
_send_text_msg(to, f"正在调用 {model} 进行对话...")
118119
if chat_info is None:
119120
chat_info = CopilotGPT4.create_chat(wx_id=wx_id, model=model)
120121
logger.info("无历史对话记录,创建新对话成功")
@@ -159,6 +160,7 @@ def _gptx_continue(model: str, to: SendTo, message: str = "") -> None:
159160
logger.info("请输入对话记录编号")
160161
_send_text_msg(to, "请输入对话记录编号")
161162
return
163+
_send_text_msg(to, f"正在切换到对话记录 {message}...")
162164
chat_info = CopilotGPT4.continue_chat(
163165
wx_id=wx_id, model=model, chat_index=int(message)
164166
)

wechatter/message/message_parser.py

-4
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,6 @@
66
import wechatter.config as config
77
from wechatter.bot.bot_info import BotInfo
88
from wechatter.models.message import Message, SendTo
9-
from wechatter.notifier import Notifier
109

1110

1211
class MessageHandler:
@@ -41,9 +40,6 @@ def handle_message(self, message: Message) -> None:
4140
to = SendTo(message.source)
4241

4342
# 是命令消息
44-
# 回复消息已收到
45-
Notifier.notify_received(to)
46-
4743
# 开始处理命令
4844
cmd_handler = cmd_dict["handler"]
4945
if cmd_handler is not None:

wechatter/notifier.py

-31
This file was deleted.

wechatter/sender/__init__.py

+4-1
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,6 @@
1+
# isort: off
12
from .sender import Sender
3+
from .notifier import notify_logged_in, notify_logged_out, notify_received
4+
# isort: on
25

3-
__all__ = ["Sender"]
6+
__all__ = ["Sender", "notify_received", "notify_logged_in", "notify_logged_out"]

wechatter/sender/notifier.py

+23
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
# 消息通知器
2+
from wechatter.models.message import SendMessage, SendMessageType, SendTo
3+
from wechatter.sender import Sender
4+
5+
6+
def notify_received(to: SendTo) -> None:
7+
"""通知收到命令请求"""
8+
msg = "收到命令请求"
9+
Sender.send_msg(to, SendMessage(SendMessageType.TEXT, msg))
10+
11+
12+
# 机器人登录登出通知,若是登录(登出)则发送登录(登出)消息给所有管理员
13+
def notify_logged_in() -> None:
14+
"""通知登录成功"""
15+
msg = "微信机器人启动成功"
16+
Sender.send_msg_to_admins(msg)
17+
18+
19+
# FIXME: 登出消息发送不出去,因为发消息时候,机器人已经退出登录了
20+
def notify_logged_out() -> None:
21+
"""通知已退出登录"""
22+
msg = "微信机器人已退出"
23+
Sender.send_msg_to_admins(msg)

0 commit comments

Comments
 (0)