[nonebot2]QQ机器人签到插件
文章目录
- 前言
- 一、使用命令及方法
- 二、代码部分
- 1.完整代码
- 1.init.py
- 2.login.py(用于记录签到时间和判断是否签到)
- 3.read.py(用于数据读取)
- 4.write.py (用于数据的写入)
- 2.配套插件
- 总结
前言
本插件基于nonebot框架进行创作
作者萌新源
包结构
qiandao|__init.py|login.py|read.py|write.py
一、使用命令及方法
##1.使用命令
签到
##2.使用方法
放入plugins文件夹内即可
二、代码部分
1.完整代码
代码如下:
1.init.py
from nonebot import on_regex
from nonebot.typing import T_State
from nonebot.adapters.onebot.v11 import GroupMessageEvent,Bot,Message
from .read import notice2, read_data
from .login import notice,search
from .write import write_file
import time
import json
import randomqd = on_regex(pattern = r'^签到$')@qd.handle()
async def lj(bot: Bot, event: GroupMessageEvent, state: T_State):coints = random.randint(1,100)qq_id = str(event.user_id)local_time = time.localtime(event.time)login_time = time.strftime('%d',local_time)file_name = 'coints.json'with open(file_name) as f:data_user = json.load(f)if qq_id in data_user:#判断用户是不是第一次签到await read_data(coints,qq_id,login_time) #首次使用签到功能需要先执行一次签到lovelive_send = await notice()else:await read_data(coints,qq_id,login_time) #首次使用签到功能需要先执行一次签到lovelive_send = await notice2()# at_ = f"[CQ:at,qq={event.get_user_id()}]"await qd.send(Message(str(lovelive_send)))
2.login.py(用于记录签到时间和判断是否签到)
import json
from .write import write_filesend = 0
async def search(coint,qq,time):file_name = 'coints.json'with open(file_name) as f:data_user = json.load(f)last_time = data_user[f'{qq}login']global sendif time == last_time:send = '你已经签到过了,明天再来吧'else:send = f'签到成功,获得{coint}个金币'await write_file(coint,qq,False,data_user,time)async def notice():news = sendreturn news
3.read.py(用于数据读取)
import json
import time
from .write import write_file#调用写入模块
from .login import searchsend = 1
async def read_data(coint,qq,time):file_name = 'coints.json'global sendtry:with open(file_name) as f:data_user = json.load(f)if qq in data_user:#判断用户是不是第一次签到await search(coint,qq,time)else:await write_file(coint,qq,True,data_user,time)send = f'签到成功,获得{coint}个金币'except FileNotFoundError:data = {'null':0}with open(file_name,'w') as f:json.dump(data,f)with open(file_name) as f:data_2 = json.load(f)await write_file(coint,qq,True,data_2,time)async def notice2():news = sendreturn news
4.write.py (用于数据的写入)
import jsonasync def write_file(coint,qq,first,file_read,time):if first == True:file_name = 'coints.json'data = dict(file_read)data2 = {str(qq):coint,f'{qq}login':time}data.update(data2)print(data)with open(file_name,'w') as f:json.dump(data,f)else:file_name = 'coints.json'data = dict(file_read)qq_str = str(qq)print(data)coints = data[f'{qq_str}']data[f'{qq_str}'] = int(coints) + int(coint)data[f'{qq_str}login'] = str(time)print(data)with open(file_name,'w') as f:json.dump(data,f)
2.配套插件
配套插件search.py(用于查询用户金币余额)
使用指令
我的钱包
from nonebot import on_regex
from nonebot.typing import T_State
from nonebot.adapters.onebot.v11 import GroupMessageEvent,Bot,Message
import jsonqd = on_regex(pattern = r'^我的钱包$')@qd.handle()
async def lj(bot: Bot, event: GroupMessageEvent, state: T_State):qq_id = str(event.user_id)await search_qq(qq_id)# at_ = f"[CQ:at,qq={event.get_user_id()}]"lovelive_send = await notice()await qd.send(Message(str(lovelive_send)))send = 0
async def search_qq(qq):global sendfile_name = 'coints.json'with open(file_name) as f:data_user = json.load(f)money = data_user[f'{qq}']send = f'您的金币共有{money}个'async def notice():news = sendreturn news
总结
本插件可以和任何其他插件配套使用
[nonebot2]QQ机器人签到插件相关推荐
- 用Python制作QQ机器人聊天插件(1)
目录 制作插件 1.找到插件文件夹 搭建好我们的机器人环境后,打开放置机器人的文件夹,找到 src文件夹 打开后找到 2.填写代码 运行效果 上期博文介绍了QQ机器人框架搭建,这期介绍QQ机器人聊天插 ...
- 酷Q移植先驱的记录流程,QQ机器人框架插件
所用到的教程链接 机器人下载地址:https://www.xianqubot.com/ 操作借鉴: https://discuss.xianqubot.com/ https://github.com/ ...
- 情迁QQ机器人 js插件发送艾特消息
首先要说明的是机器人版本1.9.9以及以前的版本调用sendAtMsg(msgitem,group,qq)发送艾特消息都无法正常的艾特,所以我找到了另外一种方法让低版本也可以发送艾特消息. funct ...
- QQ机器人官方插件加载配置方法【beta2版本】
声明:之前写的老版本已经不能用了,请把所有插件更新为最新版本.代码也需要重新迭代更新. 修改文件名:pyproject.toml,以下是我的该文件内容: [tool.poetry] name = &q ...
- 【最新】QQ机器人插件
QQ机器人 前言 QQ机器人功能展示 一.如何白嫖(用别人的插件) 二.如何自力更生(自己写) 前言 本文旨在如何为你的QQ机器人添加插件,也就是添加机器人的功能.添加插件的方法有两种,一种是用别人写 ...
- 情迁红包配合情迁QQ机器人新版作为插件加载的使用教程
初次体验 如果你第一次打开本文章,我想对你说的是,这文章可能只供参考因为有些设置又了很大的改动,以及方式也不一样了. 插件开发具体还请参考 手机端编写LUA脚本插件https://www.jiansh ...
- 今日运势 酷q_mirai QQ机器人运势,一言,一键签到插件
mirai QQ机器人运势,一言,一键签到插件 由于酷Q暂停运行了,前些日子发现mirai还可以使用,于是使用它提供的类库开发了运势,一言,签到的插件集合.没有采用插件加载的方式,在项目里已经写好了实 ...
- 用Nonebot2搭建QQ机器人(一):我的学习经历(一)
1.NoneBot2的概述: NoneBot2 是一个现代.跨平台.可扩展的 Python 聊天机器人框架,它基于 Python 的类型注解和异步特性,能够为你的需求实现提供便捷灵活的支持.然后剩下的 ...
- 从零开始在服务器上搭建QQ机器人——插件(二)
一.简介 在做完基本构建之后,自己的机器人旧可以开始使用了,但是只有一个内置的/echo命令.功能不够丰富. 因此,需要安装插件来获得更多的功能. 二.配置 参照nonebot的官网,编写命令 | N ...
最新文章
- sql语句的简单记录
- 7_linux下PHP、Apache、Mysql服务的安装
- pycharm ssh mysql_PyCharm使用之配置SSH Interpreter的方法步骤
- 数据结构与算法一 - 二叉树基础
- java中三种常见内存溢出错误的处理方法
- 宝塔可以修改服务器内存限制吗,宝塔内存使用率很高的解决方法 cpu过高这样做!...
- php之isset() 、empty()、is_null()的区别
- python绘图颜色深浅代表数值_画图理解Python的深浅拷贝
- 【个人笔记】OpenCV4 C++ 快速入门 00课
- 数学_最小二乘法相关
- python 指定时间内_python获取指定时间段内的随机不重复的时间点
- doris的tablet副本修复相关情况总结
- 【Python实现视频转文字操作】
- java 调度_几种任务调度的Java实现方法与比较
- SAP OOALV-SD模块实战开发案例(增删改查)
- 【Web前端HTML5CSS3】05-样式继承与其他概念
- miui9支持android,基于Android Q的MIUI来了 小米9尝鲜
- 开源office办公套件
- STM32 | STM32CubeMX基础之TIM
- 针对MacBook提示目前翻译不可用请稍后再试的解决方法