mirror of
https://github.com/KimigaiiWuyi/GenshinUID.git
synced 2025-05-30 04:00:31 +08:00
80 lines
3.1 KiB
Python
80 lines
3.1 KiB
Python
from http.cookies import SimpleCookie
|
||
|
||
from ..utils.db_operation.db_cache_and_check import refresh_ck
|
||
from ..utils.db_operation.db_operation import select_db, stoken_db, cookies_db
|
||
from ..utils.mhy_api.get_mhy_data import (
|
||
get_mihoyo_bbs_info,
|
||
get_cookie_token_by_stoken,
|
||
get_stoken_by_login_ticket,
|
||
)
|
||
|
||
|
||
async def deal_ck(mes, qid):
|
||
simp_dict = SimpleCookie(mes)
|
||
uid = await select_db(qid, 'uid')
|
||
if isinstance(uid, str):
|
||
pass
|
||
else:
|
||
return '该用户没有绑定过UID噢~'
|
||
im_list = []
|
||
is_add_stoken = False
|
||
app_cookie, stoken = '', ''
|
||
if 'login_ticket' in simp_dict:
|
||
# 寻找stoken
|
||
login_ticket = simp_dict['login_ticket'].value
|
||
if 'login_uid' in simp_dict:
|
||
account_id = simp_dict['login_uid'].value
|
||
elif 'stuid' in simp_dict:
|
||
account_id = simp_dict['stuid'].value
|
||
elif 'ltuid' in simp_dict:
|
||
account_id = simp_dict['ltuid'].value
|
||
else:
|
||
return '该CK字段出错, 缺少login_uid或stuid或ltuid字段!'
|
||
stoken_data = await get_stoken_by_login_ticket(
|
||
login_ticket, account_id
|
||
)
|
||
stoken = stoken_data['data']['list'][0]['token']
|
||
app_cookie = f'stuid={account_id};stoken={stoken}'
|
||
cookie_token_data = await get_cookie_token_by_stoken(
|
||
stoken, account_id
|
||
)
|
||
cookie_token = cookie_token_data['data']['cookie_token']
|
||
is_add_stoken = True
|
||
elif 'cookie_token' in simp_dict:
|
||
# 寻找uid
|
||
account_id = simp_dict['account_id'].value
|
||
cookie_token = simp_dict['cookie_token'].value
|
||
else:
|
||
return (
|
||
'添加Cookies失败!Cookies中应该包含cookie_token或者login_ticket相关信息!'
|
||
'\n可以尝试退出米游社登陆重新登陆获取!'
|
||
)
|
||
account_cookie = f'account_id={account_id};cookie_token={cookie_token}'
|
||
mys_data = await get_mihoyo_bbs_info(account_id, account_cookie)
|
||
# 剔除除了原神之外的其他游戏
|
||
for i in mys_data['data']['list']:
|
||
if i['game_id'] == 2:
|
||
uid = i['game_role_id']
|
||
break
|
||
else:
|
||
return f'你的米游社账号{account_id}尚未绑定原神账号,请前往米游社操作!'
|
||
await refresh_ck(uid, account_id)
|
||
await cookies_db(uid, account_cookie, qid)
|
||
if is_add_stoken:
|
||
await stoken_db(app_cookie, uid)
|
||
im_list.append(f'添加Stoken成功,stuid={account_id},stoken={stoken}')
|
||
im_list.append(
|
||
f'添加Cookies成功,account_id={account_id},cookie_token={cookie_token}'
|
||
)
|
||
im_list.append(
|
||
'Cookies和Stoken属于个人重要信息,如果你是在不知情的情况下添加,请马上修改米游社账户密码,保护个人隐私!'
|
||
)
|
||
im_list.append(
|
||
(
|
||
'如果需要【gs开启自动签到】和【gs开启推送】还需要在【群聊中】使用命令“绑定uid”绑定你的uid。'
|
||
'\n例如:绑定uid123456789。'
|
||
)
|
||
)
|
||
im_list.append('你可以使用命令【绑定信息】检查你的账号绑定情况!')
|
||
return '\n'.join(im_list)
|