mirror of
https://github.com/N1ngYu/SaltBot.git
synced 2025-09-28 08:42:40 +08:00
587 lines
32 KiB
Python
587 lines
32 KiB
Python
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):
|