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):