机器人插件(自动发信息的机器人_自动转发消息的机器人)

发布时间:2025-12-10 19:33:02 浏览次数:2

自动发信息的机器人_自动转发消息的机器人-QQ机器人插件

自动发信息的机器人_自动转发消息的机器人nonebot2聊天机器人插件9:定时提醒器timing1.插件用途2.目录结构3.实现难点与解决方案3.1定时器3.2调用bot的api发送消息4.代码实现5.插件配图6.实际效果7.下一个插件该插件涉及知识点:定时器插件合集:nonebot2聊天机器人插件该系列为用于QQ群聊天机器人的nonebot2相关插件,不保证完全符合标准规范写法,如有差错和改进余地,欢迎大佬指点修正。前端:nonebot2后端:go-cqhttp插件所用语言:python3前置环境安装过程建议参考

nonebot2聊天机器人插件9:定时提醒器timing

1. 插件用途 2. 目录结构 3. 实现难点与解决方案 3.1 定时器 3.2 调用bot的api发送消息 4. 代码实现 5. 插件配图 6. 实际效果 7. 下一个插件


该插件涉及知识点:定时器,调用bot的api发送消息


插件合集:nonebot2聊天机器人插件

该系列为用于QQ群聊天机器人的nonebot2相关插件,不保证完全符合标准规范写法,如有差错和改进余地,欢迎大佬指点修正。
前端:nonebot2
后端:go-cqhttp
插件所用语言:python3
前置环境安装过程建议参考零基础2分钟教你搭建QQ机器人——基于nonebot2,但是请注意该教程中的后端版本过旧导致私聊发图异常,需要手动更新go-cqhttp版本。

1. 插件用途

插件名:定时器(timing)

用处是在规定的时间点发送指定的信息。
如果在发送前加入对日期的判断,也可以很轻松地改造成生日提示之类的功能。

2. 目录结构

在plugins文件夹中新建一个文件夹timing,文件夹内目录结构如下:

|-quasistar_engine    |-img        |-图片存放路径    |-__init__.py    |-timing.py    |-config.py

希望我今天分享的这篇文章可以帮到您。

其中img为用于存储发送的图片的文件夹,timing.py为定时器的位置,config.py用于存储配置项,__init__.py为程序启动位置。

3. 实现难点与解决方案

3.1 定时器

定时器基于nonebot-plugin-apscheduler实现。
官方文档参考:https://v2.nonebot.dev/docs/advanced/scheduler

3.2 调用bot的api发送消息

直接调用bot的api发送群聊或者私聊信息。

获取bot方式,参考NoneBot中apscheduler插件简单案例:

from nonebot import get_botsbot, = get_bots().values()

群聊信息:

# 发送一条群聊信息await bot.send_msg(    message_type="group",    # 群号    group_id=12345678,    message='这是一条群聊信息')

私聊信息:

# 发送一条私聊信息await bot.send_msg(    message_type="private",    # 私聊用户QQ号    user_id=12345678,    message='这是一条私聊信息')

4. 代码实现

__init__.py

from .timing import *

config.py

import osclass Config:    # 记录在哪些群组中使用    used_in_group = ["12345678"]    # 插件执行优先级    priority = 10

timing.py

from nonebot import on_command, require, get_botsfrom nonebot.adapters.cqhttp import MessageSegmentimport asyncioimport osfrom random import randintfrom .config import Config__plugin_name__ = 'timing'__plugin_usage__ = '用法:在规定时间触发发送的信息。'img_path = 'file:///' + os.path.split(os.path.realpath(__file__))[0] + '/img/'# 发送图片时用到的函数, 返回发送图片所用的编码字符串def send_img(img_name):    global img_path    return MessageSegment.image(img_path + img_name)# 设置一个定时器timing = require("nonebot_plugin_apscheduler").scheduler# 设置在15:00发送信息@timing.scheduled_job("cron", hour='15', minute='00', )async def drink_tea():    bot, = get_bots().values()    # 发送一条群聊信息    await bot.send_msg(        message_type="group",        # 群号        group_id=12345678,        message='这是一条群聊信息' + send_img('三点饮茶.gif')    )    # 随机休眠2-5秒    await asyncio.sleep(randint(2, 5))    # 发送一条私聊信息    await bot.send_msg(        message_type="private",        # 私聊用户QQ号        user_id=12345678,        message='这是一条私聊信息' + send_img('三点饮茶.gif')    )

5. 插件配图

三点饮茶.gif

6. 实际效果

7. 下一个插件

nonebot2聊天机器人插件10:迁移至nonebot2.0.0b5

需要做网站?需要网络推广?欢迎咨询客户经理 13272073477