Merge pull request 'Feature: 支持响应更多类型的喵' (#52) from feature/nya-more into master
All checks were successful
continuous-integration/drone/push Build is passing

Reviewed-on: #52
This commit is contained in:
2026-02-25 13:57:36 +08:00

View File

@ -1,10 +1,58 @@
from nonebot import on_message
from nonebot_plugin_alconna import UniMessage
from nonebot.internal.adapter import Event
from nonebot_plugin_alconna import UniMessage, UniMsg, Text
from konabot.common.nb.match_keyword import match_keyword
evt = on_message(rule=match_keyword(""))
evt_nya = on_message(rule=match_keyword(""))
@evt.handle()
@evt_nya.handle()
async def _():
await evt.send(await UniMessage().text("").export())
await evt_nya.send(await UniMessage().text("").export())
NYA_SYMBOL_MAPPING = {
"": "",
"!": "!",
"?": "!",
"": "",
"": "",
",": ",",
"": "",
".": ".",
"": "",
"": "",
"~": "~",
"": "",
" ": " ",
"\n": "\n",
}
async def has_nya(msg: UniMsg) -> bool:
if any((not isinstance(seg, Text) for seg in msg)):
return False
text = msg.extract_plain_text()
if len(text) <= 1:
return False
if "" not in text:
return False
if any(((char not in NYA_SYMBOL_MAPPING) for char in text)):
return False
return True
evt_nya_v2 = on_message(rule=has_nya)
@evt_nya_v2.handle()
async def _(msg: UniMsg, evt: Event):
text = msg.extract_plain_text()
await UniMessage.text(''.join(
(NYA_SYMBOL_MAPPING.get(c, '') for c in text)
)).send(evt)