文章目录

  • 前言
  • 一、使用命令及方法
  • 二、代码部分
    • 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机器人签到插件相关推荐

  1. 用Python制作QQ机器人聊天插件(1)

    目录 制作插件 1.找到插件文件夹 搭建好我们的机器人环境后,打开放置机器人的文件夹,找到 src文件夹 打开后找到 2.填写代码 运行效果 上期博文介绍了QQ机器人框架搭建,这期介绍QQ机器人聊天插 ...

  2. 酷Q移植先驱的记录流程,QQ机器人框架插件

    所用到的教程链接 机器人下载地址:https://www.xianqubot.com/ 操作借鉴: https://discuss.xianqubot.com/ https://github.com/ ...

  3. 情迁QQ机器人 js插件发送艾特消息

    首先要说明的是机器人版本1.9.9以及以前的版本调用sendAtMsg(msgitem,group,qq)发送艾特消息都无法正常的艾特,所以我找到了另外一种方法让低版本也可以发送艾特消息. funct ...

  4. QQ机器人官方插件加载配置方法【beta2版本】

    声明:之前写的老版本已经不能用了,请把所有插件更新为最新版本.代码也需要重新迭代更新. 修改文件名:pyproject.toml,以下是我的该文件内容: [tool.poetry] name = &q ...

  5. 【最新】QQ机器人插件

    QQ机器人 前言 QQ机器人功能展示 一.如何白嫖(用别人的插件) 二.如何自力更生(自己写) 前言 本文旨在如何为你的QQ机器人添加插件,也就是添加机器人的功能.添加插件的方法有两种,一种是用别人写 ...

  6. 情迁红包配合情迁QQ机器人新版作为插件加载的使用教程

    初次体验 如果你第一次打开本文章,我想对你说的是,这文章可能只供参考因为有些设置又了很大的改动,以及方式也不一样了. 插件开发具体还请参考 手机端编写LUA脚本插件https://www.jiansh ...

  7. 今日运势 酷q_mirai QQ机器人运势,一言,一键签到插件

    mirai QQ机器人运势,一言,一键签到插件 由于酷Q暂停运行了,前些日子发现mirai还可以使用,于是使用它提供的类库开发了运势,一言,签到的插件集合.没有采用插件加载的方式,在项目里已经写好了实 ...

  8. 用Nonebot2搭建QQ机器人(一):我的学习经历(一)

    1.NoneBot2的概述: NoneBot2 是一个现代.跨平台.可扩展的 Python 聊天机器人框架,它基于 Python 的类型注解和异步特性,能够为你的需求实现提供便捷灵活的支持.然后剩下的 ...

  9. 从零开始在服务器上搭建QQ机器人——插件(二)

    一.简介 在做完基本构建之后,自己的机器人旧可以开始使用了,但是只有一个内置的/echo命令.功能不够丰富. 因此,需要安装插件来获得更多的功能. 二.配置 参照nonebot的官网,编写命令 | N ...

最新文章

  1. sql语句的简单记录
  2. 7_linux下PHP、Apache、Mysql服务的安装
  3. pycharm ssh mysql_PyCharm使用之配置SSH Interpreter的方法步骤
  4. 数据结构与算法一 - 二叉树基础
  5. java中三种常见内存溢出错误的处理方法
  6. 宝塔可以修改服务器内存限制吗,宝塔内存使用率很高的解决方法 cpu过高这样做!...
  7. php之isset() 、empty()、is_null()的区别
  8. python绘图颜色深浅代表数值_画图理解Python的深浅拷贝
  9. 【个人笔记】OpenCV4 C++ 快速入门 00课
  10. 数学_最小二乘法相关
  11. python 指定时间内_python获取指定时间段内的随机不重复的时间点
  12. doris的tablet副本修复相关情况总结
  13. 【Python实现视频转文字操作】
  14. java 调度_几种任务调度的Java实现方法与比较
  15. SAP OOALV-SD模块实战开发案例(增删改查)
  16. 【Web前端HTML5CSS3】05-样式继承与其他概念
  17. miui9支持android,基于Android Q的MIUI来了 小米9尝鲜
  18. 开源office办公套件
  19. STM32 | STM32CubeMX基础之TIM
  20. 针对MacBook提示目前翻译不可用请稍后再试的解决方法

热门文章

  1. Python 乘法口诀
  2. python实现打卡
  3. 第五节、AHK对话框详解
  4. 【东信北邮成都研发中心】一年Java开发经验面经
  5. 关于MAC时间无法自动更新,时间错误的问题解决方法
  6. Outlook邮件创建的规则失效,可能的原因
  7. 智慧数字经营 3.0 系统功能简介
  8. poi 替换word里的\n 变成 换行
  9. iOS 正则表达式判断手机号,邮箱等
  10. C# 校验类(邮箱、手机号、身份证号等)