Merge pull request 'Feature: 支持响应更多类型的喵' (#52) from feature/nya-more into master
All checks were successful
continuous-integration/drone/push Build is passing
All checks were successful
continuous-integration/drone/push Build is passing
Reviewed-on: #52
This commit is contained in:
@ -1,10 +1,58 @@
|
|||||||
from nonebot import on_message
|
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
|
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 _():
|
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)
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user