NoneBot2插件——今日人品
Posted ʚVVcatɞ
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了NoneBot2插件——今日人品相关的知识,希望对你有一定的参考价值。
参考:https://v2.nonebot.dev/api/plugin.html
on_command(cmd, rule=None, aliases=None, **kwargs)函数
- 说明
注册一个消息事件响应器,并且当消息以指定命令开头时响应。
命令匹配规则参考: 命令形式匹配
-
参数
-
cmd: Union[str, Tuple[str, …]]: 指定命令内容
-
rule: Optional[Union[Rule, T_RuleChecker]]: 事件响应规则
-
aliases: Optional[Set[Union[str, Tuple[str, …]]]]: 命令别名
-
permission: Optional[Permission]: 事件响应权限
-
handlers: Optional[List[Union[T_Handler, Handler]]]: 事件处理函数列表
-
temp: bool: 是否为临时事件响应器(仅执行一次)
-
priority: int: 事件响应器优先级
-
block: bool: 是否阻止事件向更低优先级传递
-
state: Optional[T_State]: 默认 state
-
state_factory: Optional[T_StateFactory]: 默认 state 的工厂函数
-
-
返回
-Type[Matcher]
__init__.py 文件
import random
from datetime import date
from nonebot.plugin import on_command, export
from nonebot.adapters.cqhttp import Bot, Event
from nonebot.adapters.cqhttp.message import Message
export = export()
export.name = '今日人品'
export.usage = '''/jrrp'''
def luck_simple(num):
if num < 18:
return '大吉'
elif num < 53:
return '吉'
elif num < 58:
return '半吉'
elif num < 62:
return '小吉'
elif num < 65:
return '末小吉'
elif num < 71:
return '末吉'
else:
return '凶'
"""ON_COMMAND
ON_COMMAND是MFC提供的宏,实现命令消息(如菜单、工具栏的选项消息)的消息响应函数的注册。
使用方法为ON_COMMAND(消息ID, 响应函数名)
注册了响应函数之后,一旦主窗口接收到该命令消息,程序就会调用我们提供的消息响应函数进行处理
"""
jrrp = on_command('jrrp', priority=50) # 接收关键字
"""
在上方代码中,我们注册了一个事件响应器 Matcher,它由几个部分组成:
on_command 注册一个消息类型的命令处理器
"天气" 指定 jrrp 参数 - 命令名
rule 补充事件响应器的匹配规则
priority 事件响应器优先级
block 是否阻止事件传递
"""
"""handle()
简单的为事件响应器添加一个事件处理函数,这个函数将会在上一个处理函数正常返回执行完毕后立即执行。
"""
@jrrp.handle() # 监听 jrrp
async def jrrp_handle(bot: Bot, event: Event):
rnd = random.Random()
rnd.seed((int(date.today().strftime("%y%m%d")) * 45) * (int(event.get_user_id()) * 55))
lucknum = rnd.randint(1, 100) # 1 到 100的数
# 返回QQ号, 发送消息
await jrrp.finish(message=Message(f'[CQ:at,qq={event.get_user_id()}]您今日的幸运指数是{lucknum}/100(越低越好),为"{luck_simple(lucknum)}"'))
文件编写完成后,存放在 plugins 目录下。
调用结果:
以上是关于NoneBot2插件——今日人品的主要内容,如果未能解决你的问题,请参考以下文章