From 829142194394c9f1c80d6ffedcd1b6ede5e9d379 Mon Sep 17 00:00:00 2001 From: Armor00 <2654988228@qq.com> Date: Thu, 18 Jul 2024 11:24:37 +0800 Subject: [PATCH] utils --- src/util/__init__.py | 0 src/util/utils.py | 40 ++++++++++++++++++++++++++++++++++++++++ 2 files changed, 40 insertions(+) create mode 100644 src/util/__init__.py create mode 100644 src/util/utils.py diff --git a/src/util/__init__.py b/src/util/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/src/util/utils.py b/src/util/utils.py new file mode 100644 index 0000000..6facc55 --- /dev/null +++ b/src/util/utils.py @@ -0,0 +1,40 @@ +import requests +import json +import os + +from pathlib import Path + +project_path = Path(__file__).parent.parent.absolute() +data_path = os.path.join(project_path, 'data') + + +def hg_get_new_user_token(username, password): + login_url = 'https://ak.hypergryph.com/user/login' + session = requests.session() + session.get(login_url) + login_data = json.dumps({"phone": username, "password": password}) + response = session.post('https://as.hypergryph.com/user/auth/v1/token_by_phone_password', data=login_data, + headers={"Content-Type": "application/json"}) + token_data = json.loads(response.text)['data']['token'] + return token_data + + +def load_existing_token(token_path): + with open(token_path, 'r', encoding='utf-8') as f: + token_data = json.load(f) + return token_data + + +def hg_login(username, password, token_path=None): + if not token_path: + token_path = os.path.join(data_path, 'token') + user_token = load_existing_token(token_path) + get_gacha_url = f'https://ak.hypergryph.com/user/api/inquiry/gacha?page=1&token={user_token}&channelId=1' + gacha_response = requests.get(get_gacha_url).text + if gacha_response == '{"code":3000,"msg":"登录失效"}': + hg_get_new_user_token(username, password) + get_gacha_url = f'https://ak.hypergryph.com/user/api/inquiry/gacha?page=1&token={user_token}&channelId=1' + gacha_response = requests.get(get_gacha_url).text + if gacha_response == '{"code":3000,"msg":"登录失效"}': + print('用户名/密码错误') + raise ValueError