🎨 增加ambr.top的部分请求

This commit is contained in:
Wuyi无疑 2023-07-16 19:45:04 +08:00
parent d23d9a3e49
commit 3498055c36
4 changed files with 30 additions and 0 deletions

View File

@ -8,3 +8,5 @@ AMBR_MONSTER_URL = 'https://api.ambr.top/v2/chs/monster/{}?vh=37F4'
AMBR_GCG_LIST_URL = 'https://api.ambr.top/v2/chs/gcg?vh=37F4' AMBR_GCG_LIST_URL = 'https://api.ambr.top/v2/chs/gcg?vh=37F4'
AMBR_GCG_DETAIL = 'https://api.ambr.top/v2/chs/gcg/{}?vh=37F4' AMBR_GCG_DETAIL = 'https://api.ambr.top/v2/chs/gcg/{}?vh=37F4'
AMBR_MONSTER_LIST = 'https://api.ambr.top/v2/chs/monster?vh=37F4' AMBR_MONSTER_LIST = 'https://api.ambr.top/v2/chs/monster?vh=37F4'
AMBR_ICON_URL = 'https://api.ambr.top/assets/UI'
AMBR_MONSTER_ICON_URL = f'{AMBR_ICON_URL}/monster/'

View File

@ -3,8 +3,12 @@
''' '''
from __future__ import annotations from __future__ import annotations
from io import BytesIO
from pathlib import Path
from typing import Dict, Union, Literal, Optional, cast from typing import Dict, Union, Literal, Optional, cast
import aiofiles
from PIL import Image
from httpx import AsyncClient from httpx import AsyncClient
from ..types import AnyDict from ..types import AnyDict
@ -23,6 +27,7 @@ from .models import (
from .api import ( from .api import (
AMBR_BOOK_URL, AMBR_BOOK_URL,
AMBR_CHAR_URL, AMBR_CHAR_URL,
AMBR_ICON_URL,
AMBR_EVENT_URL, AMBR_EVENT_URL,
AMBR_GCG_DETAIL, AMBR_GCG_DETAIL,
AMBR_WEAPON_URL, AMBR_WEAPON_URL,
@ -112,6 +117,27 @@ async def get_story_data(story_id: Union[int, str]) -> Optional[str]:
return None return None
async def get_ambr_icon(type: str, icon_name: str, path: Path) -> Image.Image:
file_path = path / f'{icon_name}.png'
if file_path.exists():
async with aiofiles.open(path, 'rb') as f:
return Image.open(await f.read())
async with AsyncClient(timeout=None) as client:
req = await client.get(
f'{AMBR_ICON_URL}/{type}/{icon_name}.png',
headers=_HEADER,
)
if req.status_code == 200:
content = req.read()
async with aiofiles.open(file_path, 'wb') as f:
await f.write(content)
return Image.open(BytesIO(content))
else:
return Image.new('RGBA', (256, 256), (0, 0, 0))
async def _ambr_request( async def _ambr_request(
url: str, url: str,
method: Literal['GET', 'POST'] = 'GET', method: Literal['GET', 'POST'] = 'GET',

View File

@ -39,6 +39,7 @@ class SQLA:
async def sr_adapter(self): async def sr_adapter(self):
exec_list = [ exec_list = [
'ALTER TABLE GsBind ADD COLUMN group_id TEXT',
'ALTER TABLE GsBind ADD COLUMN sr_uid TEXT', 'ALTER TABLE GsBind ADD COLUMN sr_uid TEXT',
'ALTER TABLE GsUser ADD COLUMN sr_uid TEXT', 'ALTER TABLE GsUser ADD COLUMN sr_uid TEXT',
'ALTER TABLE GsUser ADD COLUMN sr_region TEXT', 'ALTER TABLE GsUser ADD COLUMN sr_region TEXT',

View File

@ -8,6 +8,7 @@ class GsBind(SQLModel, table=True):
id: Optional[int] = Field(default=None, primary_key=True, title='序号') id: Optional[int] = Field(default=None, primary_key=True, title='序号')
bot_id: str = Field(title='平台') bot_id: str = Field(title='平台')
user_id: str = Field(title='账号') user_id: str = Field(title='账号')
group_id: str = Field(title='群号')
uid: Optional[str] = Field(default=None, title='原神UID') uid: Optional[str] = Field(default=None, title='原神UID')
sr_uid: Optional[str] = Field(default=None, title='星铁UID') sr_uid: Optional[str] = Field(default=None, title='星铁UID')
mys_id: Optional[str] = Field(default=None, title='米游社通行证') mys_id: Optional[str] = Field(default=None, title='米游社通行证')