[nonebot2]QQ机器人签到插件


前言

本插件基于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 random



qd = 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_file

send = 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 send
    if time == last_time:
        send = '你已经签到过了,明天再来吧'
    else:
        send = f'签到成功,获得{coint}个金币'
        await write_file(coint,qq,False,data_user,time)
        
async def notice():
    news = send
    return news

3.read.py(用于数据读取)

import json
import time
from .write import write_file#调用写入模块
from .login import search

send = 1
async def read_data(coint,qq,time):
    file_name = 'coints.json'
    global send
    try:
        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 = send
    return news

4.write.py (用于数据的写入)

import json

async 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 json




qd = 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 send
    file_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 = send
    return news

总结

本插件可以和任何其他插件配套使用


  • 4
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 8
    评论
QQ群签到系统 v4.0更新: 新增连续签到和随机签到奖励。  QQ群签到系统实现QQ群签到功能功能,能够帮助用户在QQ群签到。 QQ群签到系统特点介绍: 1. 过滤重复签到——群员发送签到语,机器人自动提示签到顺位,每位群员一天内只能签到一次。 2. 自定义签到词——群主可自定义签到词,如设置"我来了",则当群员发送"我来了"即可实现签到。 3. 自定义签到提示——当成员发送签到语以后,系统自动发送签到成功的提示,提示内容可自定义。 4. 自定义签到时间——群主可自定义签到时间,如设置每天在8:00-20:00签到有效,则其余时间无效。 5. 自定义签到名额——群主可设置每天的签到有效名额,如果设置为0,则表示不限制签到名额。 6. 积分和等级规则——群主可以自定义不同签到顺位的积分,以及根据累计积分设置不同等级称号。 7. 个人签到记录查询——可在后台查询本人在某个月的每天签到记录,记录包括签到时间和签到顺位。 8. 群员签到记录查询——可在后台查询本群所有成员某一天的签到全记录,包括签到人,时间和顺位。 操作说明: 1. 在官方网站下载qq群签到系统。 2. 打开选项设置进行各项功能设置。 3. 输入您的qq号和密码启动系统。 4. 告知您的群员签到词内容是什么。 5. 群员在群内发送签到词即可签到。 温馨提示: 1. 申请一个新QQ号,将其加到您的群,用此QQ登陆签到系统,这样不影响您的主QQ号正常聊天。 2. 当您在不同地方使用机器人时,切记把Set.ini,Point.ini随同软件一起打包,Set.ini保存了您的所有设置,Point.ini保存您的群成员当前积分。
QQ机器人(QQPlus)功能介绍   1.支持Q群自动管理 自定义机器人进群欢迎语言、自定义审核入群方式(同意、拒绝、忽略、密码验证)、黑名单、无限群管理、自动改群名片、清除所有名片格式、批量修改名片、手机移动在线管理、远程管理及控制机器人,智能客服及客服菜单问答系统、自动营销管理系统、Q群互联。 2. Discuz 插件 新帖发送到QQ群、群聊天记录同步到论坛,论坛回帖、加好友、打招呼....所有消息发送到用户QQ,无需24小时盯着论坛,最大限度提醒用户回访论坛。支持二次开发,数据无缝对接。 3.支持插件扩展 无论使用php、asp、asp.net、还是窗体插件,甚至调用DLL二次开发,随时都可以扩展自己的业务。 4.贴心实用功能 自带查询天气、彩票、糗事百科、QQ群签到、成语接龙、股市行情....各种便民查询,想查就查! 5.窗体和命令行两种模式 喜欢简单、省事,没问题,窗体版为您量身定制,全部可视化操作,无需输入命令。需要输入命令行的快感,行!我们提供了命令行窗口的软件。 6.程序定制 鉴于不同站点有不同的实际功能需求,为了让更多的用户体验QQ机器人系列产品的强大易用功能,我们提供在QQ机器人系列产品的基础上进行功能定制开发服务。 7.支持发送图片 无论qq好友还是群,都可以发送图片,支持本地图片和网络图片 8.软件稳定 采用PC协议基础开发!可无限加群,无限管理,只要你的配置跟得上,QQ机器人将是你不错的选择!可加上W个群
### 回答1: jQuery日历签到插件是一种使用jQuery框架开发的日历插件,它可以帮助开发者在网站或应用中快速添加日历签到功能。通常,这类插件可以让用户在日历中点击签到,并在签到后标记已签到的日期。有很多jQuery日历签到插件可供选择,例如:jquery-simple-datetimepicker,jQuery UI Datepicker 等。 ### 回答2: jQuery日历签到插件是一种用于在网页上创建并管理签到功能的插件。它基于最流行的JavaScript库jQuery开发,具有使用方便、功能强大的特点。 使用jQuery日历签到插件,我们可以轻松地在网站或应用中添加一个日历,让用户进行签到。用户可以通过点击日历中的日期来实现签到操作。插件会自动记录用户的签到历史,让用户可以随时查看过去签到的日期。 该插件提供了丰富的定制化选项,可以根据需求设置签到的样式、颜色、日期格式等。我们可以自定义插件的外观,使其与网站的整体风格保持一致。 在签到过程中,插件会根据用户的签到情况进行更新,例如标记已签到的日期、显示签到天数等。用户可以在日历上清晰地看到自己的签到进度,从而激励自己保持连续签到的动力。 除了基本的签到功能外,该插件还提供了一些有用的扩展功能,例如签到排名、分享到社交媒体等。这些功能可以增加用户的参与度和互动性,使签到活动更加有趣和吸引人。 总之,jQuery日历签到插件是一款方便实用的工具,能够轻松地在网页上添加签到功能,增强用户的参与度和互动性。无论是个人博客、在线商城还是社区论坛,都可以通过该插件为用户提供方便快捷的签到体验。 ### 回答3: jQuery日历签到插件是一种基于jQuery库开发插件,用于在网站或应用程序中实现日历式的签到功能。这个插件可以方便地帮助用户记录自己的签到情况,并且可以显示签到的日期、统计签到次数等信息。 这个插件具有以下特点: 1. 界面美观:插件提供了精美的界面设计,用户可以直观地看到自己的签到情况。 2. 签到操作简单:用户可以通过点击日历来进行签到操作,无需繁琐的操作步骤。 3. 签到状态显示:已签到的日期会有特殊的标记,用户可以一目了然地知道哪些日期已经签到。 4. 签到记录统计:插件提供了签到次数的统计功能,用户可以知道自己的签到情况和坚持程度。 5. 可定制性强:插件提供了丰富的配置选项,用户可以根据自己的需求进行自定义设置,比如自定义签到图标、签到规则等。 使用这个插件,网站或应用程序可以方便地实现签到功能,提升用户的参与度和黏性。无论是健身签到、学习签到还是其他类型的签到,这个插件都能满足用户的需求。同时,由于基于jQuery开发插件具有良好的兼容性和扩展性,可以与其他jQuery插件或功能进行集成。 综上所述,jQuery日历签到插件是一款功能强大、操作简单、界面美观的插件,适用于各种类型的签到应用。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 8
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

萌新源

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值