29 lines
917 B
Python
29 lines
917 B
Python
import io
|
|
import os
|
|
from pathlib import Path
|
|
|
|
from PIL import Image
|
|
|
|
|
|
class AvatarExporter:
|
|
def __init__(self, dir_name: str):
|
|
self.dir_name = dir_name
|
|
# 头像是否已保存好 Key: userName value: True/False
|
|
self._saved_map = {}
|
|
if not os.path.exists(f'output/{self.dir_name}/avatars/'):
|
|
os.mkdir(f'output/{self.dir_name}/avatars/')
|
|
|
|
def get_avatar_path(self, userName) -> str:
|
|
if userName in self._saved_map:
|
|
return f'avatars/{userName}.png'
|
|
|
|
from app.DataBase import misc_db
|
|
blob_data = misc_db.get_avatar_buffer(userName)
|
|
self._saved_map[userName] = True
|
|
if blob_data:
|
|
image = Image.open(io.BytesIO(blob_data))
|
|
image.save(f'output/{self.dir_name}/avatars/{userName}.png', 'PNG')
|
|
return f'avatars/{userName}.png'
|
|
else:
|
|
return f'icons/empty-avatar.jpg'
|