New: Upload Score(Not Test Yet)

This commit is contained in:
2025-03-03 22:02:07 +08:00
parent bb9f931bb4
commit 83fabcd941
3 changed files with 103 additions and 21 deletions

View File

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

View File

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