GenshinUID/genshinuid_mys/get_mys_data.py
2022-09-04 14:02:13 +08:00

95 lines
2.3 KiB
Python

import json
from typing import List
from pathlib import Path
TASK_PATH = Path(__file__).parent / 'task.json'
with open(TASK_PATH, "r", encoding='UTF-8') as f:
task_data = json.load(f)
task_im = '''「任务」 {}{}
「攻略」 {}'''
extra_im = '''
「类型」 {}
「地区」 {}
「时长预估」 {}
「版本」 {}'''
async def _get_tag(result_task: dict) -> str:
if result_task['ext'] != '{}':
detail = json.loads(r'%s' % result_task['ext'])
detail = detail['c_231']
tag = detail['filter']['text'].replace('","', '|')[2:-2]
tag_list = tag.split('|')
tag_data = {}
for i in tag_list:
tag_data[i.split('/')[0]] = i.split('/')[1]
type = tag_data['任务类型']
region = tag_data['所属区域']
time = tag_data['任务耗时']
version = tag_data['版本']
extra = extra_im.format(type, region, time, version)
else:
extra = ''
title = result_task['title']
url = result_task['bbs_url']
title = title.replace('羊皮卷', '')
im = task_im.format(title, extra, url)
return im
async def get_task_detail(task_name: str) -> str:
all_task = task_data['data']['list'][0]['children']
task_list = []
for item in all_task:
task_list.extend(item['list'])
for task in task_list:
if task_name in task['title']:
result_task = task
break
else:
return '没有找到该任务...'
im = await _get_tag(result_task)
return im
async def get_region_task(region: str) -> List:
all_task = task_data['data']['list'][0]['children']
task_list = []
for item in all_task:
if region in item['name']:
task_list.extend(item['list'])
break
else:
return []
all_list = []
mes_list = []
for index, task in enumerate(task_list):
tag = await _get_tag(task)
mes_list.append(
{
'type': 'node',
'data': {
'name': '小仙',
'uin': '3399214199',
'content': tag,
},
}
)
if index != 0 and index % 44 == 0:
all_list.append(mes_list)
mes_list = []
all_list.append(mes_list)
return all_list