From 38ade33f70520cbb0f0b9612f0cebea1487ac89d Mon Sep 17 00:00:00 2001 From: Armor00 <2654988228@qq.com> Date: Thu, 18 Jul 2024 20:30:20 +0800 Subject: [PATCH] extract data --- src/ark_helper_backend/backend.py | 45 ++++++++++++++++++++++++++++++- 1 file changed, 44 insertions(+), 1 deletion(-) diff --git a/src/ark_helper_backend/backend.py b/src/ark_helper_backend/backend.py index b336fbc..cf0739c 100644 --- a/src/ark_helper_backend/backend.py +++ b/src/ark_helper_backend/backend.py @@ -3,6 +3,7 @@ import os import logging import copy import requests +import time from pathlib import Path @@ -143,8 +144,50 @@ class ArkHelperBackend: except Exception as ex: self.logger.error(f'签到失败,原因:{str(ex)}') + def update_gacha_data(self): + for phone in self.user_data_dict: + gacha_history_data = self.user_data_dict[phone]['gacha'] + if not gacha_history_data: + gacha_history_data = {} + token = self.user_data_dict[phone]['token'] + newly_extracted_data = {} + for i in range(1, 11): + get_gacha_url = f'https://ak.hypergryph.com/user/api/inquiry/gacha?page={i}&token={token}&channelId=1' + temp_data = requests.get(get_gacha_url).json().get('data') + if not temp_data.get('list'): + break + for item in temp_data['list']: + pull_id, banner = str(item['ts']), item['pool'] + new_data = [[i['name'], i['rarity'], 1 if i['isNew'] else 0] for i in item['chars']] + newly_extracted_data[pull_id] = {'c': new_data, 'p': banner} + sort_data_list = sorted(newly_extracted_data.items(), key=lambda x: x[0]) + sorted_data = {item[0]: item[1] for item in sort_data_list} + gacha_history_data.update(sorted_data) + self.user_data_dict[phone]['gacha'] = gacha_history_data + self.logger.info(f'{phone} gacha data updated') + self.save_data(token_status=False, payment_status=False) + + def update_payment_data(self): + url = 'https://as.hypergryph.com/u8/pay/v1/recent' + for phone in self.user_data_dict: + payment_data = self.user_data_dict[phone]['payment'] + if not payment_data: + payment_data = {} + token = self.user_data_dict[phone]['token'] + data = {"appId": 1, "channelMasterId": 1, "channelToken": {"token": token}} + pay_data = json.loads(requests.post(url, json.dumps(data)).text).get('data') + for item in pay_data: + i = pay_data.index(item) + pay_time = item['payTime'] + pay_data[i]['payTime'] = time.strftime('%Y-%m-%d %H:%M:%S', time.localtime(pay_time)) + + pay_dict = {item['orderId']: item for item in pay_data} + payment_data.update(pay_dict) + self.user_data_dict[phone]['payment'] = payment_data + self.save_data(token_status=False, gacha_status=False) + if __name__ == '__main__': ak_back = ArkHelperBackend() - ak_back.skland_sign() + ak_back.update_payment_data()