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相关推荐

  1. nonebot2聊天机器人插件7:随机角色卡mist_star

    nonebot2聊天机器人插件7:随机角色卡mist_star 1. 插件用途 2. 目录结构 3. 实现难点与解决方案 3.1 遍历目录下所有文件 3.2 自定义属性文本格式 3.3 自定义异常报错 ...

  2. nonebot2聊天机器人插件5:加群退群通报与退群次数记录join_and_leave

    nonebot2聊天机器人插件5:加群退群通报与退群次数记录join_and_leave 1. 插件用途 2. 目录结构 3. 实现难点与解决方案 3.1 读取加群退群信息 3.2 数据库操作 4. ...

  3. nonebot2聊天机器人插件4:群聊与戳一戳响应chat

    nonebot2聊天机器人插件4:群聊与戳一戳响应chat 1. 插件用途 2. 目录结构 3. 实现难点与解决方案 3.1 随机触发 3.2 返回随机信息 3.3 禁言用户 3.4 json转换 3 ...

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

    nonebot2聊天机器人插件10:迁移至nonebot2.0.0b5 1. 版本升级 2. go-cqhttp后端调整 3. nonebot2前端改动 3.1 导入库方式改变 3.2 命令信息的改变 ...

  5. nonebot2聊天机器人插件3:计算器calculator

    nonebot2聊天机器人插件3:计算器calculator 1. 插件用途 2. 目录结构 3. 实现难点与解决方案 3.1 将字符串作为代码执行 3.2 正则过滤 4. 代码实现 5. 插件配图 ...

  6. nonebot2聊天机器人插件1:基础应答print

    nonebot2聊天机器人插件1:基础应答print 1. 插件用途 2. 目录结构 3. 实现难点与解决方案 4. 代码实现 5. 插件配图 6. 实际效果 7. 下一个插件 该插件涉及知识点:无 ...

  7. 【聊天机器人插件】Tidio与SaleSmartly:谁更适合你的网站?

    随着跨境电商行业的迅速发展,相应为网站配套的各类插件也不断被推出,比如可提供24小时自动回复的智能聊天机器人. 最近,一个外国团队就聊天机器人插件,对消费者开展调查问卷,得出了以下结论: l 可有效解 ...

  8. 【独立站运营】5款绝佳WooCommerce聊天机器人插件

    使用WooCommerce经营商店时,你最喜欢的是什么?免费插件?漂亮的商店主题?还是配置使用的方便? 以上所有都是为了完成同一个目标--以最小的努力创建一家专业商店. 现在,你可以添加一个WooCo ...

  9. python自动抓取聊天群内容_python微信聊天机器人改进版,定时或触发抓取天气预报、励志语录等,向好友推送...

    最近想着做一个微信机器人,主要想要实现能够每天定时推送天气预报或励志语录,励志语录要每天有自动更新,定时或当有好友回复时,能够随机推送不同的内容.于是开始了分析思路.博主是采用了多线程群发,因为微信对 ...

最新文章

  1. linux会话管理,Linux 安装 screen 远程会话管理工具
  2. 【备忘】Oracle10g 创建、删除表空间、创建、授权用户
  3. boost的chrono模块运行计时器的测试程序
  4. 10.2.3 基本属性
  5. 【小题目】判断一个数字是否是3的倍数
  6. 利用cookie的跨域单点登录的简单实现
  7. LOJ 2085: 洛谷 P1587: bzoj 4652: 「NOI2016」循环之美
  8. 指数温度20190804
  9. vs2012中编译时出现程序集所使用的版本高于所引用的版本
  10. 山东大学舆情分析系统项目结题总结
  11. 数据结构实验——约瑟夫环
  12. Visual Studio 2012下载资源 百度云
  13. python+selenium高级教程
  14. 龙卷风java_程序设计-理解java继承-遁地龙卷风
  15. VSTO插件供WPS使用
  16. Unity3D之协程(Coroutines Yield )
  17. 天龙八部网单服务器修改爆率,天龙八部网游单服务器修改资料.doc
  18. 音视频处理 ffmpeg初级开发 命令行工具-实用命令
  19. Java类和对象小结
  20. ssh报user not allowed because account is locked错误

热门文章

  1. Linux文件压缩和解压命令【gzip、gunzip、zip、unzip、tar】【详细总结】
  2. HTML5新标签与特性
  3. 预约手机在线维修小程序在线预约下订单上门维修师傅在线接单结合拼团砍价
  4. fastadmin 按钮
  5. 新员工入职培训感受总结
  6. 利用模板化应对ERP业务模型的快速变化
  7. 企业岗位招聘校园招聘宣讲会PPT模板
  8. Mathtype的安装、使用以及问题解决
  9. SpringBoot实现微信小程序支付
  10. SAR chirp scaling(CSA)算法仿真