Files
SaltBot/Plugin/nonebot_plugin_maimai_helper/__init__.py
2025-03-05 20:29:32 +08:00

587 lines
32 KiB
Python
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
from nonebot import on_command, on_regex, on_startswith
from nonebot.adapters.onebot.v11 import GroupMessageEvent, Message , MessageSegment, bot
from nonebot.typing import T_State
from nonebot.params import EventMessage, CommandArg, Arg, ArgPlainText
from nonebot.permission import SUPERUSER
from nonebot_plugin_maimai_helper.helper.simai import *
from nonebot_plugin_maimai_helper.util.utils import *
from nonebot_plugin_maimai_helper.helper.diving_fish import *
from nonebot_plugin_maimai_helper.update_music_list import *
from nonebot_plugin_maimai_helper.helper.download import download_image
from nonebot_plugin_maimai_helper.helper.qrcode import *
from nonebot_plugin_maimai_helper.helper.convert import *
from nonebot_plugin_maimai_helper.leak.music import *
from os import *
import subprocess
#from nonebot_plugin_maimai_helper.img import *
#from time import *
config = nonebot.get_driver().config
TICKET = getattr(config, 'ticket', True)
ALLOWGROUP = getattr(config, 'allowgroup', [6324])
WHITELIST = getattr(config, 'whitelist', False)
USER_IMGPYFILE = 'generate_img.py'
def check_time() -> bool:
current_hour = datetime.now().hour
if 3 <= current_hour < 7:
return False
else:
return True
def is_ticket_enable() -> bool:
return True if TICKET and check_time() else False
#bind_user_id = on_startswith(('SGWCMAID'), ignorecase=False, rule=check_time)
bind_user_id = on_command('maibind', aliases={'绑定舞萌','绑定maimaidx','绑定maimai','绑定舞萌id'}, priority=20, rule=check_time)
seeme = on_command('seeme', aliases={'看我','kw', '审视党性'}, priority=20, rule=check_time)
maihelp = on_command('maihelp', priority=20)
g_login = on_command('login', priority=20, rule=check_time)
g_logout = on_command('logout', priority=20, rule=check_time)
tickets = on_command('ticket',aliases={'查票'}, priority=20, rule=check_time)
trick = on_command('舞萌足迹',aliases={'place'}, priority=20, rule=check_time)
token_bind = on_command("sybind",aliases={'绑定水鱼'}, priority=20, rule=check_time)
gb = on_command("syup",aliases={'更新b50','水鱼更新'}, priority=20, rule=check_time)
status = on_command('status',aliases={'华立状态','状态','活着不','活着吗','活着嘛','mai?', 'mai'}, priority=20, rule=check_time)
up_list = on_command('uplist', priority=20, permission=SUPERUSER)
user_img = on_command('myimg',aliases={'','看看你的'} ,priority=20, rule=check_time)
upload_score = on_command('amusic',aliases={'传分'}, priority=20, rule=check_time)
@upload_score.handle()
async def _(event: GroupMessageEvent, message: Message = EventMessage()):
user_qq = event.get_user_id()
user_id = None
if is_userid_exist(user_qq):
user_id = get_userid(user_qq)
else:
await seeme.send("你还没有绑定舞萌账号~\n请先发送「maibind+你的登录二维码识别后字符串」绑定账号吧~")
if user_id != -1:
music_data = str(message).strip()
music_list = music_data.split()
if len(music_list) < 9:
await seeme.send("指令格式出错啦!请按照以下格式发送(括号中内容无需发送)\namusic 417 0 11 1005245 1 0 12 13\n指令解释amusic [曲目ID] [乐曲等级] [游玩次数] [Acc] [ComboStatus] [SyncStatus] [DXScore] [Rank]\n乐曲等级(0=Basic,1=Advanced,2=Expert,3=Master,4=Re:Master)\nComboStatus(0=无,1=FC,2=FC+,3=AP,4=AP+)\nSyncStatus(0=无,1=FS,2=FS+,3=FDX,4=FDX+,5=SYNCPLAY)\nRank(0=D,1=C,2=B,3=BB,4=BBB,5=A,6=AA,7=AAA,8=S,9=S+,10=SS,11=SS+,12=SSS,13=SSS+)\n!Caution!DX分数不要超过该乐曲总值若不确定请自行查询后再使用")
command = music_list[0] # 命令
music_id = int(music_list[1]) # 第一个数字
music_level = int(music_list[2]) # 第二个数字
music_count = int(music_list[3]) # 第三个数字
music_acc = int(music_list[4]) # 第四个数字
music_combo = int(music_list[5]) # 第五个数字
music_sync = int(music_list[6]) # 第六个数字
music_dx = int(music_list[7]) # 第七个数字
music_rank = int(music_list[8]) # 第八个数字
music_return = music(music_id,music_level,music_count,music_acc,music_combo,music_sync,music_dx,music_rank,user_id)
if music_return['is_success']:
await upload_score.send("上传成功!")
else:
await upload_score.send("上传失败了...请找机修吧...")
'''
@upload_score.got("music_rank", prompt="请输入乐曲分数排名")
async def handle_func(event: GroupMessageEvent,music_id: Message = Arg()):
user_qq = event.get_user_id()
if is_userid_exist(user_qq):
user_id = get_userid(user_qq)
if user_id != -1:
music_data = ({
"musicId": music_id,
"level": music_level,
"playCount": music_count,
"achievement": music_acc,
"comboStatus": music_combo,
"syncStatus": music_sync,
"deluxscoreMax": music_dx,
"scoreRank": music_rank,
"extNum1": 0
})
music_finish = music(music_data,user_id)
'''
@bind_user_id.handle()
async def _(event: GroupMessageEvent, message: Message = EventMessage()):
await bind_user_id.send(MessageSegment.text("请直接发送您的登录二维码或发送识别后字符串~"))
@bind_user_id.receive()
async def _(event: GroupMessageEvent, message: Message = EventMessage()):
user_qq = event.get_user_id()
msg = event.get_message()
if msg and msg[0].type == "image":
image_url = msg[0].data.get("url")
logger.info(image_url)
image_bytes = download_image(image_url,"F:/img/test.png")
# 将字节数据读取为 numpy 数组
logger.info(image_bytes)
#image_array = np.frombuffer(image_bytes, np.uint8)
#logger.info(image_array)
gray_image = convert_to_grayscale("F:/img/test.png")
logger.info(gray_image)
qr_code = decode_qr_code(gray_image)
if not qr_code:
logger.warning("没有找到二维码!")
await bind_user_id.finish("我好像没有看到二维码呢")
user_id = None
id_result = get_user_id_by_qr(str(qr_code).strip())
logger.debug(f'USERID获取结果:{id_result}')
errorResult = {
1: "ReaderSetupFail(二维码可能已过期)", 2: "二维码可能已过期", 3: "ReaderIncompatible", 4: "DBResolveFail",
5: "DBAccessTimeout", 6: "DBAccessFail", 7: "AimeIdInvalid", 8: "NoBoardInfo",
9: "LockBanSystemUser", 10: "LockBanSystem", 11: "LockBanUser", 12: "LockBan",
13: "LockSystem", 14: "LockUser"
}
if id_result['errorID'] == 0:
user_id = id_result['userID']
else:
await bind_user_id.finish([MessageSegment.reply(event.message_id), MessageSegment.text(f"查询ID失败:{errorResult[id_result['errorID']]}")])
if save_user_id(user_qq, user_id) == 1:
await bind_user_id.finish([MessageSegment.reply(event.message_id), MessageSegment.text("绑定成功了喵~")])
elif save_user_id(user_qq, user_id) == -1:
await bind_user_id.finish([MessageSegment.reply(event.message_id), MessageSegment.text("请先联系机修解绑账号喵~")])
elif save_user_id(user_qq, user_id) == -2:
await bind_user_id.finish([MessageSegment.reply(event.message_id), MessageSegment.text("绑定发生错误,请联系机修。")])
else:
await bind_user_id.finish([MessageSegment.reply(event.message_id), MessageSegment.text("绑定未知错误,请联系机修。")])
logger.info(qr_code)
logger.info(msg)
elif msg and msg[0].type == "text" and str(msg).startswith("SGWCMAID") and len(str(msg)) == 84:
user_qq = event.get_user_id()
user_id = None
id_result = get_user_id_by_qr(str(event.message).strip())
logger.debug(f'USERID获取结果:{id_result}')
errorResult = {
1: "ReaderSetupFail(二维码可能已过期)", 2: "二维码可能已过期", 3: "ReaderIncompatible", 4: "DBResolveFail",
5: "DBAccessTimeout", 6: "DBAccessFail", 7: "AimeIdInvalid", 8: "NoBoardInfo",
9: "LockBanSystemUser", 10: "LockBanSystem", 11: "LockBanUser", 12: "LockBan",
13: "LockSystem", 14: "LockUser"
}
if id_result['errorID'] == 0:
user_id = id_result['userID']
else:
await bind_user_id.finish([MessageSegment.reply(event.message_id), MessageSegment.text(f"查询ID失败:{errorResult[id_result['errorID']]}")])
if save_user_id(user_qq, user_id) == 1:
await bind_user_id.finish([MessageSegment.reply(event.message_id), MessageSegment.text("绑定成功了喵~")])
elif save_user_id(user_qq, user_id) == -1:
await bind_user_id.finish([MessageSegment.reply(event.message_id), MessageSegment.text("您已经绑定过了,若需重新绑定请联系机修喵~")])
elif save_user_id(user_qq, user_id) == -2:
await bind_user_id.finish([MessageSegment.reply(event.message_id), MessageSegment.text("绑定发生错误,请联系机修。")])
else:
await bind_user_id.finish([MessageSegment.reply(event.message_id), MessageSegment.text("绑定未知错误,请联系机修。")])
elif msg and len(str(msg)) == 128:
if is_token_exist(user_qq):
await token_bind.send([MessageSegment.reply(event.message_id), MessageSegment.text("出错了...请先联系机修解绑Token再试试吧~")])
else:
if save_user_token(user_qq, msg) == 1:
await token_bind.send([MessageSegment.reply(event.message_id), MessageSegment.text("绑定水鱼成功啦~正在尝试撤回Token~若失败请手动撤回!!")])
await bot.delete_msg(event.message_id)
elif save_user_token(user_qq, msg) == -1:
await token_bind.send(
[MessageSegment.reply(event.message_id), MessageSegment.text("出错了...请先联系机修解绑Token。\nErr:-1")])
elif save_user_token(user_qq, msg) == -2:
await token_bind.send(
[MessageSegment.reply(event.message_id), MessageSegment.text("出错了...请联系机修。\nErr:-2")])
else:
await token_bind.send("请发送正确的水鱼Token~")
@user_img.handle()
async def _(event: GroupMessageEvent, message: Message = EventMessage()):
user_qq = event.get_user_id()
user_id = None
script_path = 'F:/generate_img.py'
if is_userid_exist(user_qq):
user_id = get_userid(user_qq)
else:
await seeme.send("你还没有绑定舞萌账号~\n请先发送「maibind+你的登录二维码识别后字符串」绑定账号吧~")
if user_id != -1:
data = get_preview_detailed(user_id)
if data["is_got_qr_code"]:
await user_img.send([MessageSegment.reply(event.message_id), MessageSegment.text("盐巴正在开你的盒,请不要重复请求!!!")])
chara_level = str(data['data']['charaLevel'])
chara_id = str(data['data']['charaId'])
chara_id1 = chara_id.replace("[","")
chara_id2 = chara_id1.replace("]","")
chara_id3 = chara_id2.replace(","," ")
chara_id4 = chara_id3.replace(" "," ")
chara_level1 = chara_level.replace("[","")
chara_level2 = chara_level1.replace("]","")
chara_level3 = chara_level2.replace(","," ")
chara_level4 = chara_level3.replace(" "," ")
# chara_level = re.sub(r'[\[\]\s,]', '', str(data['data']['charaLevel']))
# chara_id = re.sub(r'[\[\]\s,]', '', str(data['data']['charaId']))
logger.info(chara_id3)
logger.info(chara_level3)
logger.info(chara_id4)
logger.info(chara_level4)
logger.info(chara_id3)
logger.info(chara_level3)
logger.info(chara_id4)
logger.info(chara_level4)
user_name = "\""+data['data']['userName']+"\""
title_name = "\""+data['data']['titleName']+"\""
logger.info(data['data']['courseRank'])
logger.info(data['data']['classRank'])
with os.popen("python F:/generate_img.py --nickname" +" "+ user_name + " --title " +" "+ title_name + " --icon " +" "+ str(data['data']['iconId']) + " --frame " +" "+ str(data['data']['frameId']) + " --plate " +" "+ str(data['data']['plateId']) + " --rating" +" "+ str(data['data']['playerRating']) + " --titleRare" +" "+ str(data['data']['titleRare']) + " --chara" +" "+ str(chara_id4) +" --charaLevel" +" "+str(chara_level4)+" "+"--classRank"+" "+str(data['data']['classRank'])+" "+"--courseRank"+" "+str(data['data']['courseRank']) ) as file:
for line in file.readlines():
logger.info(line.strip())
await user_img.send([MessageSegment.reply(event.message_id), MessageSegment.image("file:///F:/img/output.png")])
os.remove("F:/img/output.png")
else:
await user_img.send("用户未获取二维码,请获取后再试。")
'''
@bind_user_id.handle()
async def _(event: GroupMessageEvent, message: Message = EventMessage()):
user_qq = event.get_user_id()
user_id = None
id_result = get_user_id_by_qr(str(event.message)[7:].strip())
logger.debug(f'USERID获取结果:{id_result}')
errorResult = {
1: "ReaderSetupFail(二维码可能已过期)", 2: "二维码可能已过期", 3: "ReaderIncompatible", 4: "DBResolveFail",
5: "DBAccessTimeout", 6: "DBAccessFail", 7: "AimeIdInvalid", 8: "NoBoardInfo",
9: "LockBanSystemUser", 10: "LockBanSystem", 11: "LockBanUser", 12: "LockBan",
13: "LockSystem", 14: "LockUser"
}
if id_result['errorID'] == 0:
user_id = id_result['userID']
else:
await bind_user_id.finish([MessageSegment.reply(event.message_id), MessageSegment.text(f"查询ID失败:{errorResult[id_result['errorID']]}")])
if save_user_id(user_qq, user_id) == 1:
await bind_user_id.finish([MessageSegment.reply(event.message_id), MessageSegment.text("绑定成功了喵~")])
elif save_user_id(user_qq, user_id) == -1:
await bind_user_id.finish([MessageSegment.reply(event.message_id), MessageSegment.text("请先联系机修解绑账号喵~")])
elif save_user_id(user_qq, user_id) == -2:
await bind_user_id.finish([MessageSegment.reply(event.message_id), MessageSegment.text("绑定发生错误,请联系机修。")])
else:
await bind_user_id.finish([MessageSegment.reply(event.message_id), MessageSegment.text("绑定未知错误,请联系机修。")])
'''
@seeme.handle()
async def _(event: GroupMessageEvent, message: Message = EventMessage()):
user_qq = event.get_user_id()
user_id = None
if is_userid_exist(user_qq):
user_id = get_userid(user_qq)
else:
await seeme.send("你还没有绑定舞萌账号~\n请先发送「maibind+你的登录二维码识别后字符串」绑定账号吧~")
if user_id != -1:
data = get_preview_detailed(user_id)
if data["is_got_qr_code"]:
await seeme.send([MessageSegment.reply(event.message_id), MessageSegment.text(
f"玩家昵称:\t{data['data']['userName']}\n"
f"玩家Rating\t{data['data']['playerRating']}\n"
f"总觉醒数:\t{data['data']['totalAwake']}\n"
f"头像:\t{data['data']['iconName']}\n"
f"背景板:\t{data['data']['frameName']}\n"
f"姓名框:\t{data['data']['plateName']}\n"
f"称号:\t{data['data']['titleName']}\n"
f"搭档:\t{data['data']['partnerName']}\n"
f"最近登录系统号:\t{data['data']['lastRomVersion']}\n"
f"最近登录版本号:\t{data['data']['lastDataVersion']}\n"
f"上次登陆时间:\t{data['data']['lastLoginDate']}\n"
f"最后游玩时间:\t{data['data']['lastPlayDate']}\n"
f"玩家注册时间:\t{data['data']['firstPlayDate']}\n"
f"游玩次数:\t{data['data']['playCount']}\n"
f"当前游玩区域:\t{data['data']['lastSelectCourse']}\n"
f"旅行伙伴名称:\t{data['data']['charaName']}\n"
f"旅行伙伴等级:\t{data['data']['charaLevel']}\n"
f"旅行伙伴觉醒数:\t{data['data']['charaAwakening']}\n"
f"banState\t{data['data']['banState']}"
)
])
else:
data1 = get_preview(user_id)
if data1['is_success']:
await seeme.send([MessageSegment.reply(event.message_id), MessageSegment.text(
f"玩家昵称:\t{data1['data']['userName']}\n"
f"玩家Rating\t{data1['data']['playerRating']}\n"
f"总觉醒数:\t{data1['data']['totalAwake']}\n"
f"头像:\t{data1['data']['iconName']}\n"
f"最近登录系统号:\t{data1['data']['lastRomVersion']}\n"
f"最近登录版本号:\t{data1['data']['lastDataVersion']}\n"
f"上次登陆时间:\t{data1['data']['lastLoginDate']}\n"
f"上次游玩时间:\t{data1['data']['lastPlayDate']}\n"
f"是否登入:\t{data1['data']['isLogin']}\n"
f"banState\t{data1['data']['banState']}\n"
f"在公众号获取二维码后可以查看更多信息哟~"
)])
else:
await seeme.send([MessageSegment.reply(event.message_id), MessageSegment.text("获取失败,请联系机修。")])
@maihelp.handle()
async def _(event: GroupMessageEvent, message: Message = EventMessage()):
await maihelp.send(
"maimai插件帮助 - Ver.1.35-E\n"
"绑定舞萌账号 - maibind+你的登录二维码识别后字符串~ 例:「maibind SGWCMAID123456114514」\n"
"查询舞萌账号 - 发送「看我」~\n"
"发2/3/5/6倍券 - 发送「发券2/3/5/6」~\n"
"(发券7 可发送中二·舞萌联合2倍券,是发券,不是发卷,来跟我读 quàn)\n"
"查询账户内剩余功能票 - 发送「ticket」~\n"
"登入账号 - 发送「login + 时间戳(必选项)」\n"
"登出账号 - 发送「logout + 时间戳(必选项)」\n"
"游玩足迹 - 发送「舞萌足迹」\n"
"绑定水鱼查分器 - 发送「sybind+水鱼查分器Token」\n"
"更新b50 - 发送「syup」或「更新b50」;「水鱼更新」\n"
"检测服务器状态 - 发送「status」或「活着不」;「mai?」\n"
"更新水鱼乐曲列表 - 发送'uplist'(仅限机修)\n"
"请勿在凌晨三点至早上七点内使用SaltBot\n"
"由于华立近期严查发票,请勿频繁使用发票功能!!"
)
ticket = on_regex(r"发券(\d+)", priority=20, rule=is_ticket_enable)
@ticket.handle()
async def _(event: GroupMessageEvent, message: Message = EventMessage()):
OPEN = False
if WHITELIST:
if event.group_id in ALLOWGROUP:
OPEN = True
else:
OPEN = True
if OPEN:
regex = r"发券(\d+)"
user_qq = event.get_user_id()
user_id = None
ticket_id = None
match = re.search(regex, str(event.get_message()))
if match:
try:
ticket_id = int(match.group(1))
except ValueError:
await ticket.send(
[MessageSegment.reply(event.message_id), MessageSegment.text("现在还不支持这种券...换一张试试吧~")])
raise ValueError("匹配的不是有效的数字...检查后再试吧~")
else:
await ticket.send([MessageSegment.reply(event.message_id), MessageSegment.text("你想发什么券呢?")])
return
if is_userid_exist(user_qq):
# 判断是否存在userid
user_id = get_userid(user_qq)
else:
await ticket.send([MessageSegment.reply(event.message_id), MessageSegment.text("你还没有绑定舞萌账号~\n请先发送「maibind+你的登录二维码识别后字符串」绑定账号吧~")])
return
if ticket_id == 2:
result = send_ticket(user_id, 2)
if result["is_success"]:
await ticket.send([MessageSegment.reply(event.message_id), MessageSegment.text("成功发送了一张跑图2倍+旅行伙伴2倍+紫谱解禁一张~\n最近华立严查发券,请勿频繁使用发票功能!!")])
else:
await ticket.send(
[MessageSegment.reply(event.message_id), MessageSegment.text(f"失败了...{result['msg_body']}")])
return
elif ticket_id == 3:
result = send_ticket(user_id, 3)
if result["is_success"]:
await ticket.send([MessageSegment.reply(event.message_id), MessageSegment.text("成功发送了一张跑图3倍+旅行伙伴3倍+紫谱解禁一张~\n最近华立严查发券,请勿频繁使用发票功能!!")])
else:
await ticket.send(
[MessageSegment.reply(event.message_id), MessageSegment.text(f"失败了...{result['msg_body']}")])
return
elif ticket_id == 5:
result = send_ticket(user_id, 5)
if result["is_success"]:
await ticket.send([MessageSegment.reply(event.message_id), MessageSegment.text("成功发送了一张跑图5倍+旅行伙伴5倍+紫谱解禁一张~\n最近华立严查发券,请勿频繁使用发票功能!!")])
else:
await ticket.send(
[MessageSegment.reply(event.message_id), MessageSegment.text(f"失败了...{result['msg_body']}")])
return
elif ticket_id == 6:
result = send_ticket(user_id, 6)
if result["is_success"]:
await ticket.send([MessageSegment.reply(event.message_id), MessageSegment.text("成功发送了一张跑图6倍+旅行伙伴6倍+紫谱解禁一张~\n最近华立严查发券,请勿频繁使用发票功能!!")])
else:
await ticket.send(
[MessageSegment.reply(event.message_id), MessageSegment.text(f"失败了...{result['msg_body']}")])
return
elif ticket_id == 7:
result = send_ticket(user_id, 20020)
if result["is_success"]:
await ticket.send([MessageSegment.reply(event.message_id), MessageSegment.text("成功发送了一张跑图2倍+中二节奏2倍券~\n最近华立严查发券,请勿频繁使用发票功能!!")])
else:
await ticket.send(
[MessageSegment.reply(event.message_id), MessageSegment.text(f"失败了...{result['msg_body']}")])
else:
await ticket.send([MessageSegment.reply(event.message_id), MessageSegment.text("你想发什么券呢?")])
return
else:
await ticket.send([MessageSegment.reply(event.message_id), MessageSegment.text("本群暂无权限,请联系机修授权。")])
@g_login.handle()
async def _(event: GroupMessageEvent, message: Message = EventMessage()):
user_qq = event.get_user_id()
time = str(event.message)[5:].strip()
if is_userid_exist(user_qq):
user_id = get_userid(user_qq)
result = login(user_id, time)
if result["data"]:
if result["data"]["returnCode"] == 1:
await g_login.send([MessageSegment.reply(event.message_id), MessageSegment.text("登入成功啦!")])
else:
await g_login.send([MessageSegment.reply(event.message_id), MessageSegment.text(f"登入失败了...\nErr: {result['msg_body']}")])
else:
await g_login.send([MessageSegment.reply(event.message_id), MessageSegment.text(f"登入失败了...\nErr: {result['msg_body']}")])
else:
await g_login.send([MessageSegment.reply(event.message_id), MessageSegment.text("你还没有绑定舞萌账号~\n请先发送「maibind+你的登录二维码识别后字符串」绑定账号吧~")])
@g_logout.handle()
async def _(event: GroupMessageEvent, message: Message = EventMessage()):
user_qq = event.get_user_id()
time = str(event.message)[6:].strip()
if is_userid_exist(user_qq):
user_id = get_userid(user_qq)
result = logout(user_id, time)
if result["data"]:
if result["data"]["returnCode"] == 1:
await g_logout.send([MessageSegment.reply(event.message_id), MessageSegment.text("登出成功啦~")])
else:
await g_logout.send([MessageSegment.reply(event.message_id), MessageSegment.text(f"登出失败了...\nErr: {result['msg_body']}")])
else:
await g_logout.send([MessageSegment.reply(event.message_id), MessageSegment.text(f"登出失败了...\nErr: {result['msg_body']}")])
else:
await g_logout.send([MessageSegment.reply(event.message_id), MessageSegment.text("你还没有绑定舞萌账号~\n请先发送「maibind+你的登录二维码识别后字符串」绑定账号吧~")])
@tickets.handle()
async def _(event: GroupMessageEvent, message: Message = EventMessage()):
user_qq = event.get_user_id()
if is_userid_exist(user_qq):
user_id = get_userid(user_qq)
result = query_ticket(user_id)
ticketlist = [MessageSegment.reply(event.message_id),]
for ticket in result['data']['userChargeList']:
if ticket['chargeId'] == 2:
ticketlist.append(MessageSegment.text(f"倍券ID: 2 | 当前持有 {ticket['stock']}\n"))
elif ticket['chargeId'] == 3:
ticketlist.append(MessageSegment.text(f"倍券ID: 3 | 当前持有 {ticket['stock']}\n"))
elif ticket['chargeId'] == 5:
ticketlist.append(MessageSegment.text(f"倍券ID: 5 | 当前持有 {ticket['stock']}\n"))
elif ticket['chargeId'] == 6:
ticketlist.append(MessageSegment.text(f"倍券ID: 6 | 当前持有 {ticket['stock']}\n"))
elif ticket['chargeId'] == 20020:
ticketlist.append(MessageSegment.text(f"倍券ID: 7 | 当前持有 {ticket['stock']}"))
await tickets.send(ticketlist)
else:
await tickets.send([MessageSegment.reply(event.message_id), MessageSegment.text("你还没有绑定舞萌账号~\n请先发送「maibind+你的登录二维码识别后字符串」绑定账号吧~")])
@trick.handle()
async def _(event: GroupMessageEvent, message: Message = EventMessage()):
user_qq = event.get_user_id()
if is_userid_exist(user_qq):
user_id = get_userid(user_qq)
USERID = True
else:
USERID = False
await trick.send('你还没有绑定舞萌账号~\n请先发送「maibind+你的登录二维码识别后字符串」绑定账号吧~')
if USERID:
tricklist = [MessageSegment.reply(event.message_id),MessageSegment.text('数据以机台注册地为准!\n出现了你没有去过的地方就代表你玩的机台被搬运过~\n你曾经在以下地方游玩过舞萌DX:\n=======\n'),]
data = get_user_region(user_id)['data']['userRegionList']
for test in data:
tricklist.append(
MessageSegment.text(
f"- [ {test['regionName']} ] 共勤 {test['playCount']}\n"
f"- 首次游玩日期: {test['created']}\n"
f"=======\n"
),
)
await trick.send(tricklist)
@token_bind.handle()
async def _(event: GroupMessageEvent, message: Message = EventMessage()):
token = str(event.message)[6:].strip()
user_qq = event.get_user_id()
if token and len(token) == 128:
if is_token_exist(user_qq):
await token_bind.send([MessageSegment.reply(event.message_id), MessageSegment.text("出错了...请先联系机修解绑Token再试试吧~")])
else:
if save_user_token(user_qq, token) == 1:
await token_bind.send([MessageSegment.reply(event.message_id), MessageSegment.text("绑定水鱼成功啦~正在尝试撤回Token~若失败请手动撤回!!")])
await bot.delete_msg(event.message_id)
elif save_user_token(user_qq, token) == -1:
await token_bind.send(
[MessageSegment.reply(event.message_id), MessageSegment.text("出错了...请先联系机修解绑Token。\nErr:-1")])
elif save_user_token(user_qq, token) == -2:
await token_bind.send(
[MessageSegment.reply(event.message_id), MessageSegment.text("出错了...请联系机修。\nErr:-2")])
else:
await token_bind.send("请发送正确的水鱼Token~")
#12
@gb.handle()
async def _(event: GroupMessageEvent, message: Message = EventMessage()):
user_qq = event.get_user_id()
if not is_token_exist(user_qq):
await gb.send([MessageSegment.reply(event.message_id), MessageSegment.text("你还没有绑定水鱼查分器成绩导入Token~\n请先发送「sybind+Token」绑定Token吧~")])
else:
if not is_userid_exist(user_qq):
await gb.send([MessageSegment.reply(event.message_id), MessageSegment.text("你还没有绑定舞萌账号~\n请先发送「maibind+你的登录二维码识别后字符串」绑定账号吧~")])
else:
await gb.send([MessageSegment.reply(event.message_id), MessageSegment.text("正在更新你的b50请耐心等待不要重复请求哦~")])
token = get_token(user_qq)
user_id = get_userid(user_qq)
old_data = get_user_music(user_id)
if not old_data['is_success']:
await gb.finish([MessageSegment.reply(event.message_id), MessageSegment.text(f"更新失败了...{old_data['msg_body']}")])
else:
old_data = old_data['data']['userMusicDetailList']
try:
print(-1)
new_data, n = change_data(old_data)
print(0)
result = send_user_data(new_data, token)
print(1)
if result['status'] == 200:
await gb.send([MessageSegment.reply(event.message_id), MessageSegment.text(f"更新成功啦!发送了{n}首歌曲可以直接发送「b50」查询你的b50哦~")])
else:
await gb.send([MessageSegment.reply(event.message_id), MessageSegment.text(f"更新失败了...请联系机修查看错误信息。\nErr: {result['msg']}")])
except Exception as e:
await gb.send([MessageSegment.reply(event.message_id), MessageSegment.text(f"更新失败了...请联系机修查看错误信息。\nErr: {e}")])
@up_list.handle()
async def _(event: GroupMessageEvent, message: Message = EventMessage()):
try:
update_music_list()
await up_list.send([MessageSegment.reply(event.message_id), MessageSegment.text("更新成功啦!")])
except Exception as e:
await up_list.send([MessageSegment.reply(event.message_id), MessageSegment.text(f"更新失败了...\nErr: {e}")])
@status.handle()
async def _(event: GroupMessageEvent, message: Message = EventMessage()):
result = {'title': '坏...', 'chime': '坏...', 'all_net': '坏...',}#'allnet_delay':'???','chime_delay':'???','title_delay':'???'}
title = title_ping()
chime = chime_ping()
all_net = all_net_ping()
if title['is_success']:
result['title'] = '好!'
# result['title_delay'] = title['delay']
if chime['is_success']:
result['chime'] = '好!'
# result['chime_delay'] = chime['delay']
if all_net['is_success']:
result['all_net'] = '好!'
# result['allnet_delay'] = all_net['delay']
await status.send([MessageSegment.reply(event.message_id), MessageSegment.text(
f"[Title/标题服务器]\t{result['title']}\n"
f"[Chime/会员服务器]\t{result['chime']}\n"
f"[ALL.Net状态] \t{result['all_net']}\n"
f"[机厅的网络状态] 不知道\n"
f"[你家的网络状态] 不知道\n"
f"[机厅网络运营商状态]:不知道\n"
f"[你家网络运营商状态]:不知道"
)])
#@runhw.handle()
#async def _(event: GroupMessageEvent, message: Message = EventMessage()):
# user_qq = event.get_user_id()
# if is_userid_exist(user_qq):
# for i in range(time):