mirror of
https://github.com/baiqwerdvd/StarRailUID.git
synced 2025-05-06 11:43:44 +08:00
⚡ 缓存图片
This commit is contained in:
parent
739e94ee51
commit
03a8b6b3bd
@ -3,9 +3,13 @@ from typing import List, TypeVar, Generator
|
||||
|
||||
from PIL import Image
|
||||
from aiohttp import ClientSession
|
||||
from gsuid_core.data_store import get_res_path
|
||||
|
||||
T = TypeVar("T")
|
||||
|
||||
ROLEINFO_PATH = get_res_path() / 'StarRailUID' / 'roleinfo'
|
||||
ROLEINFO_PATH.mkdir(parents=True, exist_ok=True)
|
||||
|
||||
|
||||
def wrap_list(lst: List[T], n: int) -> Generator[List[T], None, None]:
|
||||
for i in range(0, len(lst), n):
|
||||
@ -13,6 +17,14 @@ def wrap_list(lst: List[T], n: int) -> Generator[List[T], None, None]:
|
||||
|
||||
|
||||
async def get_icon(url: str) -> Image.Image:
|
||||
async with ClientSession() as client:
|
||||
async with client.get(url) as resp:
|
||||
return Image.open(BytesIO(await resp.read())).convert("RGBA")
|
||||
name = url.split('/')[-1]
|
||||
path = ROLEINFO_PATH / name
|
||||
if (path).exists():
|
||||
content = path.read_bytes()
|
||||
else:
|
||||
async with ClientSession() as client:
|
||||
async with client.get(url) as resp:
|
||||
content = await resp.read()
|
||||
with open(path, "wb") as f:
|
||||
f.write(content)
|
||||
return Image.open(BytesIO(content)).convert("RGBA")
|
||||
|
Loading…
x
Reference in New Issue
Block a user