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插件——今日人品的主要内容,如果未能解决你的问题,请参考以下文章

NoneBot2插件——进群欢迎

Raspberry Pi 3B 安装NoneBot2

Windows 安装 NoneBot2

用nonebot2构建自己的机器人框架

VIM 代码片段插件 ultisnips 使用教程

WordPress - 代码片段插件