首次提交
This commit is contained in:
142
danding_bot/plugins/danding_api/admin.py
Normal file
142
danding_bot/plugins/danding_api/admin.py
Normal file
@@ -0,0 +1,142 @@
|
||||
from nonebot import on_command, get_plugin_config,logger
|
||||
from nonebot.permission import SUPERUSER
|
||||
from nonebot.rule import to_me
|
||||
from nonebot.adapters.onebot.v11 import PrivateMessageEvent, GroupMessageEvent, MessageSegment
|
||||
from nonebot.params import Depends
|
||||
from .config import Config
|
||||
from .utils import post, get_classes, post_vcode, get_log
|
||||
import random
|
||||
import asyncio
|
||||
import time
|
||||
|
||||
plugin_config = get_plugin_config(Config)
|
||||
|
||||
|
||||
help = on_command("咸鸭蛋",rule=to_me(),aliases={"apihelp", "sudhelp"},permission=SUPERUSER, priority=0, block=True)
|
||||
@help.handle()
|
||||
async def _():
|
||||
await asyncio.sleep(random.uniform(2, 3))
|
||||
await help.finish(plugin_config.HelpStr)
|
||||
|
||||
ddonline = on_command("在线人数",rule=to_me(),aliases={"ddonline", "ddop"}, priority=0, block=True)
|
||||
@ddonline.handle()
|
||||
async def _(event:PrivateMessageEvent):
|
||||
id:str = str(event.user_id)
|
||||
msg:str = await post("在线人数",id)
|
||||
await asyncio.sleep(random.uniform(2, 3))
|
||||
await ddonline.finish(msg)
|
||||
|
||||
addkami = on_command("添加卡密",rule=to_me(),aliases={"addkami", "akm"},permission=SUPERUSER, priority=0, block=True)
|
||||
@addkami.handle()
|
||||
async def _(event:PrivateMessageEvent):
|
||||
id:str = str(event.user_id)
|
||||
msg:str = event.get_plaintext()
|
||||
if len(msg.split(' ')) != 3:
|
||||
await asyncio.sleep(random.uniform(2, 3))
|
||||
await ddonline.finish("参数不正确!")
|
||||
|
||||
classes:str = msg.split(' ')[1]
|
||||
classes = get_classes(classes)
|
||||
if classes == '':
|
||||
await ddonline.finish("卡密类型不正确!")
|
||||
|
||||
kami:str = msg.split(' ')[2]
|
||||
msg:str = await post("添加卡密",id,{
|
||||
"classes":classes,
|
||||
"kami":kami
|
||||
})
|
||||
await asyncio.sleep(random.uniform(2, 3))
|
||||
await ddonline.finish(msg)
|
||||
|
||||
createkami = on_command("生成卡密",rule=to_me(),aliases={"createkami", "ckm"},permission=SUPERUSER, priority=0, block=True)
|
||||
@createkami.handle()
|
||||
async def _(event:PrivateMessageEvent):
|
||||
id:str = str(event.user_id)
|
||||
msg:str = event.get_plaintext()
|
||||
if len(msg.split(' ')) != 2:
|
||||
await asyncio.sleep(random.uniform(2, 3))
|
||||
await ddonline.finish("参数不正确!")
|
||||
|
||||
classes:str = msg.split(' ')[1]
|
||||
classes = get_classes(classes)
|
||||
if classes == '':
|
||||
await ddonline.finish("卡密类型不正确!")
|
||||
|
||||
msg:str = await post("生成卡密",id,{
|
||||
"classes":classes
|
||||
})
|
||||
await asyncio.sleep(random.uniform(2, 3))
|
||||
await ddonline.finish(msg)
|
||||
|
||||
addviptime = on_command("用户加时",rule=to_me(),aliases={"addviptime", "avt"},permission=SUPERUSER, priority=0, block=True)
|
||||
@addviptime.handle()
|
||||
async def _(event:PrivateMessageEvent):
|
||||
id:str = str(event.user_id)
|
||||
msg:str = event.get_plaintext()
|
||||
if len(msg.split(' ')) != 3:
|
||||
await asyncio.sleep(random.uniform(2, 3))
|
||||
await ddonline.finish("参数不正确!")
|
||||
|
||||
username:str = msg.split(' ')[1]
|
||||
classes:str = msg.split(' ')[2]
|
||||
classes = get_classes(classes)
|
||||
if classes == '':
|
||||
await ddonline.finish("卡密类型不正确!")
|
||||
|
||||
msg:str = await post("用户加时",id,{
|
||||
"username":username,
|
||||
"classes":classes
|
||||
})
|
||||
await asyncio.sleep(random.uniform(2, 3))
|
||||
await ddonline.finish(msg)
|
||||
|
||||
generate_qq_vcode = on_command("绑定QQ",aliases={"bindqq", "绑定qq"}, priority=0, block=True)
|
||||
|
||||
# 添加用户使用时间记录字典
|
||||
user_last_use_time = {}
|
||||
|
||||
@generate_qq_vcode.handle()
|
||||
async def _(event: GroupMessageEvent): # GroupMessageEvent PrivateMessageEvent
|
||||
# 检查是否来自指定群组
|
||||
if event.group_id != 621016172:
|
||||
return
|
||||
# if event.user_id != 1424473282:
|
||||
# return
|
||||
|
||||
id:str = str(event.user_id)
|
||||
|
||||
# 限流检查:检查用户上次使用时间
|
||||
current_time = time.time()
|
||||
if id in user_last_use_time:
|
||||
time_diff = current_time - user_last_use_time[id]
|
||||
if time_diff < 60: # 60秒内已使用过
|
||||
await generate_qq_vcode.finish(f"请求过于频繁,请在{int(60 - time_diff)}秒后再试")
|
||||
return
|
||||
|
||||
# 更新用户最后使用时间
|
||||
user_last_use_time[id] = current_time
|
||||
|
||||
msg:str = await post_vcode(id)
|
||||
await asyncio.sleep(random.uniform(2, 3))
|
||||
# 在消息前添加@用户
|
||||
at_user = MessageSegment.at(event.user_id)
|
||||
await generate_qq_vcode.finish(at_user + " " + msg)
|
||||
|
||||
|
||||
|
||||
|
||||
view_logs = on_command("查看日志",aliases={"logs", "查询日志"}, priority=0, block=True)
|
||||
@view_logs.handle()
|
||||
async def _(event:GroupMessageEvent): # GroupMessageEvent PrivateMessageEvent
|
||||
# 检查是否来自指定群组
|
||||
if event.group_id != 621016172:
|
||||
return
|
||||
# if event.user_id != 1424473282:
|
||||
# return
|
||||
|
||||
id:str = str(event.user_id)
|
||||
msg:str = await get_log(id)
|
||||
await asyncio.sleep(random.uniform(2, 3))
|
||||
# 在消息前添加@用户
|
||||
at_user = MessageSegment.at(event.user_id)
|
||||
await view_logs.finish(at_user + " " + msg)
|
||||
Reference in New Issue
Block a user