mirror of
https://github.com/KimigaiiWuyi/GenshinUID.git
synced 2025-05-31 04:30:29 +08:00
84 lines
2.5 KiB
Python
84 lines
2.5 KiB
Python
from pathlib import Path
|
|
|
|
from bs4 import BeautifulSoup
|
|
from nonebot.log import logger
|
|
from aiohttp.client import ClientSession
|
|
|
|
from .download_url import PATH_MAP, download_file
|
|
|
|
MINIGG_FILE = 'https://file.minigg.icu/genshin/KimigaiiWuyi/resource/'
|
|
NAMECARD_FILE = MINIGG_FILE + 'char_namecard'
|
|
SIDE_FILE = MINIGG_FILE + 'char_side'
|
|
STAND_FILE = MINIGG_FILE + 'char_stand'
|
|
CHARS_FILE = MINIGG_FILE + 'chars'
|
|
GACHA_FILE = MINIGG_FILE + 'gacha_img'
|
|
ICON_FILE = MINIGG_FILE + 'icon'
|
|
REL_FILE = MINIGG_FILE + 'reliquaries'
|
|
WEAPON_FILE = MINIGG_FILE + 'weapon'
|
|
|
|
FILE_TO_PATH = {
|
|
NAMECARD_FILE: 6,
|
|
SIDE_FILE: 3,
|
|
STAND_FILE: 2,
|
|
CHARS_FILE: 1,
|
|
GACHA_FILE: 4,
|
|
ICON_FILE: 8,
|
|
REL_FILE: 7,
|
|
WEAPON_FILE: 5,
|
|
}
|
|
|
|
FILE_TO_NAME = {
|
|
NAMECARD_FILE: '角色名片',
|
|
SIDE_FILE: '角色侧视图',
|
|
STAND_FILE: '角色半身照',
|
|
CHARS_FILE: '角色头像',
|
|
GACHA_FILE: '角色立绘',
|
|
ICON_FILE: '图标',
|
|
REL_FILE: '圣遗物',
|
|
WEAPON_FILE: '武器',
|
|
}
|
|
|
|
|
|
async def _get_url(url: str, sess: ClientSession):
|
|
req = await sess.get(url=url)
|
|
return await req.read()
|
|
|
|
|
|
async def download_all_file_from_miniggicu():
|
|
async with ClientSession() as sess:
|
|
for file in [
|
|
NAMECARD_FILE,
|
|
SIDE_FILE,
|
|
STAND_FILE,
|
|
CHARS_FILE,
|
|
GACHA_FILE,
|
|
ICON_FILE,
|
|
REL_FILE,
|
|
WEAPON_FILE,
|
|
]:
|
|
base_data = await _get_url(file, sess)
|
|
content_bs = BeautifulSoup(base_data, 'lxml')
|
|
pre_data = content_bs.find_all('pre')[0]
|
|
data_list = pre_data.find_all('a')
|
|
logger.info(
|
|
f'[minigg.icu]数据库[{FILE_TO_NAME[file]}]中存在{len(data_list)}个内容!'
|
|
)
|
|
temp_num = 0
|
|
for data in data_list:
|
|
url = f'{file}/{data["href"]}'
|
|
name = data.text
|
|
path = Path(PATH_MAP[FILE_TO_PATH[file]] / name)
|
|
if not path.exists():
|
|
logger.info(
|
|
f'[minigg.icu]开始下载[{FILE_TO_NAME[file]}]_[{name}]...'
|
|
)
|
|
temp_num += 1
|
|
await download_file(url, FILE_TO_PATH[file], name)
|
|
logger.info('[minigg.icu]下载完成!')
|
|
if temp_num == 0:
|
|
im = f'[minigg.icu]数据库[{FILE_TO_NAME[file]}]无需下载!'
|
|
else:
|
|
im = f'[minigg.icu]数据库[{FILE_TO_NAME[file]}]已下载{temp_num}个内容!'
|
|
temp_num = 0
|
|
logger.info(im)
|