2022-08-29 23:26:46 +08:00

80 lines
3.1 KiB
Python
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

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)