Files
vcbot-napcat/main.py
2025-07-05 17:26:12 +08:00

82 lines
2.9 KiB
Python
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

from ncatbot.core.notice import NoticeMessage
from ncatbot.core import BotClient, Request
import logging
import asyncio
from control.group import group
from control.private import private
from control.request import request
from control.notice import notice
import toml
with open("./config.toml", "r", encoding="utf-8") as f:
config = toml.load(f)
bt_uin = config.get("bot_qq")
root = config.get("root_qq")
ws_uri = config.get("ws_uri")
web_uri = config.get("web_uri")
webui_token = config.get("webui_token")
ws_token = config.get("ws_token")
ws_listen_ip = config.get("ws_listen_ip")
remote_mode = config.get("remote_mode")
bot = BotClient()
api = bot.run_blocking(bt_uin=bt_uin, root=root, ws_uri=ws_uri, web_uri=web_uri, webui_token=webui_token, ws_token=ws_token, ws_listen_ip=ws_listen_ip, remote_mode=remote_mode)
@bot.group_event()
async def on_group_message(msg):
logging.info(f"收到消息:{msg.raw_message},来自{msg.group_id}群聊{msg.user_id}用户")
if msg.user_id == 2854196310: # qq管家防止刷屏。bot大战请看
pass
else:
ctrl = group(msg)
return_message = ctrl.main()
if return_message is None:
return
else:
logging.info(f"返回消息:{return_message}")
await bot.api.post_group_msg(group_id=msg.group_id, text=return_message, reply=msg.message_id)
@bot.private_event()
async def on_private_message(msg):
logging.info(f"收到消息:{msg.raw_message},来自{msg.user_id}用户")
if msg.user_id == 2854196310: # qq管家防止刷屏。
pass
else:
ctrl = private(msg)
return_message = ctrl.main()
if return_message is None:
return
else:
logging.info(f"返回消息:{return_message}")
await bot.api.post_private_msg(user_id=msg.user_id, text=return_message, reply=msg.message_id)
@bot.request_event()
async def on_request_event(msg: Request):
logging.info(f"收到request事件{msg.request_type},来自{msg.group_id}群聊,{msg.user_id}用户,验证消息:{msg.comment}")
ctrl = request(msg)
accept_friend_application = ctrl.main()
if accept_friend_application is True:
await msg.reply(True, comment="请求已通过")
logging.info("请求已通过")
else:
await msg.reply(False, comment="请求被拒绝")
logging.info("请求被拒绝")
@bot.notice_event()
async def on_notice_event(msg: NoticeMessage):
logging.info(f"收到notice事件{msg['notice_type']},来自{msg['group_id']}群聊,{msg['user_id']}用户")
ctrl = notice(msg)
return_message = ctrl.main()
if return_message is None:
return
else:
logging.info(f"返回消息:{return_message}")
await bot.api.post_group_msg(group_id=msg["group_id"], text=return_message)
asyncio.get_event_loop().run_forever()