mirror of
https://github.com/KimigaiiWuyi/GenshinUID.git
synced 2025-05-30 04:00:31 +08:00
95 lines
2.3 KiB
Python
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
|