WechatMoments/exporter/avatar_exporter.py
2024-03-28 23:04:06 +08:00

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'