nonebot2聊天机器人插件9:定时提醒器timing
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_bots
bot, = 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_bots
from nonebot.adapters.cqhttp import MessageSegment
import asyncio
import os
from random import randint
from .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_pathreturn MessageSegment.image(img_path + img_name)# 设置一个定时器
timing = require("nonebot_plugin_apscheduler").scheduler# 设置在15:00发送信息
@timing.scheduled_job("cron", hour='15', minute='00', id="drink_tea")
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聊天机器人插件9:定时提醒器timing相关推荐
- nonebot2聊天机器人插件7:随机角色卡mist_star
nonebot2聊天机器人插件7:随机角色卡mist_star 1. 插件用途 2. 目录结构 3. 实现难点与解决方案 3.1 遍历目录下所有文件 3.2 自定义属性文本格式 3.3 自定义异常报错 ...
- nonebot2聊天机器人插件5:加群退群通报与退群次数记录join_and_leave
nonebot2聊天机器人插件5:加群退群通报与退群次数记录join_and_leave 1. 插件用途 2. 目录结构 3. 实现难点与解决方案 3.1 读取加群退群信息 3.2 数据库操作 4. ...
- nonebot2聊天机器人插件4:群聊与戳一戳响应chat
nonebot2聊天机器人插件4:群聊与戳一戳响应chat 1. 插件用途 2. 目录结构 3. 实现难点与解决方案 3.1 随机触发 3.2 返回随机信息 3.3 禁言用户 3.4 json转换 3 ...
- nonebot2聊天机器人插件10:迁移至nonebot2.0.0b5
nonebot2聊天机器人插件10:迁移至nonebot2.0.0b5 1. 版本升级 2. go-cqhttp后端调整 3. nonebot2前端改动 3.1 导入库方式改变 3.2 命令信息的改变 ...
- nonebot2聊天机器人插件3:计算器calculator
nonebot2聊天机器人插件3:计算器calculator 1. 插件用途 2. 目录结构 3. 实现难点与解决方案 3.1 将字符串作为代码执行 3.2 正则过滤 4. 代码实现 5. 插件配图 ...
- nonebot2聊天机器人插件1:基础应答print
nonebot2聊天机器人插件1:基础应答print 1. 插件用途 2. 目录结构 3. 实现难点与解决方案 4. 代码实现 5. 插件配图 6. 实际效果 7. 下一个插件 该插件涉及知识点:无 ...
- 【聊天机器人插件】Tidio与SaleSmartly:谁更适合你的网站?
随着跨境电商行业的迅速发展,相应为网站配套的各类插件也不断被推出,比如可提供24小时自动回复的智能聊天机器人. 最近,一个外国团队就聊天机器人插件,对消费者开展调查问卷,得出了以下结论: l 可有效解 ...
- 【独立站运营】5款绝佳WooCommerce聊天机器人插件
使用WooCommerce经营商店时,你最喜欢的是什么?免费插件?漂亮的商店主题?还是配置使用的方便? 以上所有都是为了完成同一个目标--以最小的努力创建一家专业商店. 现在,你可以添加一个WooCo ...
- python自动抓取聊天群内容_python微信聊天机器人改进版,定时或触发抓取天气预报、励志语录等,向好友推送...
最近想着做一个微信机器人,主要想要实现能够每天定时推送天气预报或励志语录,励志语录要每天有自动更新,定时或当有好友回复时,能够随机推送不同的内容.于是开始了分析思路.博主是采用了多线程群发,因为微信对 ...
最新文章
- linux会话管理,Linux 安装 screen 远程会话管理工具
- 【备忘】Oracle10g 创建、删除表空间、创建、授权用户
- boost的chrono模块运行计时器的测试程序
- 10.2.3 基本属性
- 【小题目】判断一个数字是否是3的倍数
- 利用cookie的跨域单点登录的简单实现
- LOJ 2085: 洛谷 P1587: bzoj 4652: 「NOI2016」循环之美
- 指数温度20190804
- vs2012中编译时出现程序集所使用的版本高于所引用的版本
- 山东大学舆情分析系统项目结题总结
- 数据结构实验——约瑟夫环
- Visual Studio 2012下载资源 百度云
- python+selenium高级教程
- 龙卷风java_程序设计-理解java继承-遁地龙卷风
- VSTO插件供WPS使用
- Unity3D之协程(Coroutines Yield )
- 天龙八部网单服务器修改爆率,天龙八部网游单服务器修改资料.doc
- 音视频处理 ffmpeg初级开发 命令行工具-实用命令
- Java类和对象小结
- ssh报user not allowed because account is locked错误