mirror of
https://github.com/zhenxun-org/zhenxun_bot.git
synced 2026-10-06 04:10:02 +08:00
gold_readbag and russian
This commit is contained in:
@@ -7,6 +7,7 @@ from .util import remove_prohibited_str
|
||||
from urllib.parse import unquote
|
||||
from services.log import logger
|
||||
import bs4
|
||||
import asyncio
|
||||
|
||||
try:
|
||||
import ujson as json
|
||||
@@ -35,7 +36,7 @@ async def update_simple_info(url: str, game_name: str) -> 'dict, int':
|
||||
for char in contents:
|
||||
data = await retrieve_char_data(char, game_name, data, index)
|
||||
index += 1
|
||||
data = await _last_check(data, game_name)
|
||||
data = await _last_check(data, game_name, session)
|
||||
except TimeoutError:
|
||||
logger.warning(f'更新 {game_name} 超时...')
|
||||
return {}, 999
|
||||
@@ -70,7 +71,7 @@ def get_char_lst_contents(char_lst: bs4.element.Tag, game_name: str):
|
||||
|
||||
|
||||
# 额外数据
|
||||
async def _last_check(data: dict, game_name: str) -> dict:
|
||||
async def _last_check(data: dict, game_name: str, session: aiohttp.ClientSession) -> dict:
|
||||
if game_name == 'azur':
|
||||
idx = 1
|
||||
for url in [
|
||||
@@ -85,7 +86,13 @@ async def _last_check(data: dict, game_name: str) -> dict:
|
||||
]:
|
||||
await download_img(url, 'azur', f'{idx}_star')
|
||||
idx += 1
|
||||
|
||||
tasks = []
|
||||
for key in data.keys():
|
||||
tasks.append(asyncio.ensure_future(_async_update_azur_extra_info(key, session)))
|
||||
asyResult = await asyncio.gather(*tasks)
|
||||
for x in asyResult:
|
||||
for key in x.keys():
|
||||
data[key]['获取途径'] = x[key]['获取途径']
|
||||
return data
|
||||
|
||||
|
||||
@@ -141,3 +148,26 @@ async def retrieve_char_data(char: bs4.element.Tag, game_name: str, data: dict,
|
||||
data[member_dict['名称']] = member_dict
|
||||
logger.info(f'{member_dict["名称"]} is update...')
|
||||
return data
|
||||
|
||||
|
||||
async def _async_update_azur_extra_info(key: str, session: aiohttp.ClientSession):
|
||||
if key[-1] == '改':
|
||||
return {key: {'获取途径': ['无法建造']}}
|
||||
for i in range(20):
|
||||
try:
|
||||
async with session.get(f'https://wiki.biligame.com/blhx/{key}', timeout=7) as res:
|
||||
soup = BeautifulSoup(await res.text(), 'lxml')
|
||||
construction_time = str(soup.find('table', {'class': 'wikitable sv-general'}).find('tbody'))
|
||||
x = {key: {'获取途径': []}}
|
||||
if construction_time.find('无法建造') != -1:
|
||||
x[key]['获取途径'].append('无法建造')
|
||||
elif construction_time.find('活动已关闭') != -1:
|
||||
x[key]['获取途径'].append('活动限定')
|
||||
else:
|
||||
x[key]['获取途径'].append('可以建造')
|
||||
logger.info(f'碧蓝航线获取额外信息 {key}...{x[key]["获取途径"]}')
|
||||
return x
|
||||
except TimeoutError:
|
||||
logger.warning(f'访问 https://wiki.biligame.com/blhx/{key} 第 {i}次 超时...已再次访问')
|
||||
return {}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user