From 83fabcd941367086038e55fdbf6ffd3db188531f Mon Sep 17 00:00:00 2001 From: N1ngYu Date: Mon, 3 Mar 2025 22:02:07 +0800 Subject: [PATCH] New: Upload Score(Not Test Yet) --- nonebot_plugin_maimai_helper/__init__.py | 102 +++++++++++++++--- nonebot_plugin_maimai_helper/leak/__init__.py | 0 nonebot_plugin_maimai_helper/leak/music.py | 22 ++-- 3 files changed, 103 insertions(+), 21 deletions(-) create mode 100644 nonebot_plugin_maimai_helper/leak/__init__.py diff --git a/nonebot_plugin_maimai_helper/__init__.py b/nonebot_plugin_maimai_helper/__init__.py index fee2f99..ecb52ff 100644 --- a/nonebot_plugin_maimai_helper/__init__.py +++ b/nonebot_plugin_maimai_helper/__init__.py @@ -1,6 +1,7 @@ from nonebot import on_command, on_regex, on_startswith from nonebot.adapters.onebot.v11 import GroupMessageEvent, Message , MessageSegment, bot -from nonebot.params import EventMessage +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 * @@ -9,6 +10,7 @@ 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 * @@ -46,28 +48,98 @@ gb = on_command("syup",aliases={'更新b50','水鱼更新'}, priority=20, rule=c 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) -''' -@user_login_img.handle() -async def _(event: GroupMessageEvent, message: Message = EventMessage()): +music_data = ({ + "musicId": None, + "level": None, + "playCount": None, + "achievement": None, + "comboStatus": None, + "syncStatus": None, + "deluxscoreMax": None, + "scoreRank": None, + "extNum1": 0 + }) + +@upload_score.handle() +async def handle_firstfunc(event: GroupMessageEvent,args: Message = Arg()): + if args: + await upload_score.send("1") + else: + await upload_score.send("请输入乐曲ID") + + +@upload_score.got("music_id", prompt="请输入乐曲id") +async def got_id(state: T_State): + music_data["musicId"] = state["music_id"] + await upload_score.send("请输入乐曲等级(0=Basic,1=Advanced,2=Expert,3=Master,4=Re:Master)") + +@upload_score.got("music_level", prompt="请输入乐曲等级(0=Basic,1=Advanced,2=Expert,3=Master,4=Re:Master)") +async def got_level(state: T_State): + music_data["level"] = state["music_level"] + await upload_score.send("请输入乐曲游玩次数") + +@upload_score.got("music_count", prompt="请输入乐曲游玩次数") +async def got_count(state: T_State): + music_data["playCount"] = state["music_count"] + await upload_score.send("请输入乐曲acc") + +@upload_score.got("music_acc", prompt="请输入乐曲acc") +async def got_acc(state: T_State): + music_data["achievement"] = state["music_acc"] + await upload_score.send("请输入乐曲combo状态(0=无,1=FC,2=FC+,3=AP,4=AP+)") + +@upload_score.got("music_combo", prompt="请输入乐曲combo状态((0=无,1=FC,2=FC+,3=AP,4=AP+)") +async def got_combo(state: T_State): + music_data["comboStatus"] = state["music_combo"] + await upload_score.send("请输入乐曲sync状态(0=无,1=FS,2=FS+,3=FDX,4=FDX+,5=SYNCPLAY)") + +@upload_score.got("music_sync", prompt="请输入乐曲sync状态((0=无,1=FS,2=FS+,3=FDX,4=FDX+,5=SYNCPLAY)") +async def got_sync(state: T_State): + music_data["syncStatus"] = state["music_sync"] + await upload_score.send("请输入乐曲dx分") + +@upload_score.got("music_dx", prompt="请输入乐曲dx分") +async def got_dx(state: T_State): + music_data["deluxscoreMax"] = state["music_dx"] + await upload_score.send("请输入rank(13=SSS+,12=SSS,以此类推)") + +@upload_score.got("music_rank", prompt="请输入rank(13=SSS+,12=SSS,以此类推)") +async def got_rank(state: T_State,event: GroupMessageEvent): 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(user_id) - if data["is_success"]: - await user_login_img.send([MessageSegment.reply(event.message_id), MessageSegment.text("盐巴正在整理你的舞萌资料卡~不要重复请求哦~")]) - user_name = "\""+data['data']['userName']+"\"" - with os.popen("python F:/main.py --nickname" +" "+ user_name + " " + " --icon " +" "+ str(data['data']['iconId']) +" "+ "--rating" +" "+ str(data['data']['playerRating']) ) 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/passport.png")]) - else: - await user_img.send("用户未获取二维码,请获取后再试。") + music_data["scoreRank"] = state["music_rank"] + music_finish = music(music_data,user_id) + if music_finish["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()): diff --git a/nonebot_plugin_maimai_helper/leak/__init__.py b/nonebot_plugin_maimai_helper/leak/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/nonebot_plugin_maimai_helper/leak/music.py b/nonebot_plugin_maimai_helper/leak/music.py index 4bd0b6d..981c0b1 100644 --- a/nonebot_plugin_maimai_helper/leak/music.py +++ b/nonebot_plugin_maimai_helper/leak/music.py @@ -6,9 +6,14 @@ import random from sdgb import sdgb_api from datetime import datetime, timedelta -from settings import userId -from settings import music_data -from settings import regionId, clientId, placeId, regionName, placeName +#from settings import userId +#from settings import music_data +#from settings import regionId, clientId, placeId, regionName, placeName +regionId = 1 +regionName = "北京" +placeId = 1403 +placeName = "插电师电玩北京西单大悦城店" +clientId = "A63E01C2805" from login import login @@ -29,7 +34,8 @@ def CalcRandom(): timestamp = int(time.time()) - 60 -def music(): +def music(music_data,userId): + result_success = {"is_success": False} music = music_data @@ -648,8 +654,12 @@ def music(): } }) - userall_result = json.loads(sdgb_api(data, "UpsertUserAllApi", userId)) - return userall_result +# userall_result = json.loads(sdgb_api(data, "UpsertUserAllApi", userId)) + result_success["is_success"] = True + return result_success +# return userall_result + + def music_with_retry(max_retries=10): # 这里是重试次数 for i in range(max_retries):