12345678910111213141516171819202122232425262728293031323334353637383940414243 |
- import os
- from path import path
- from PIL import Image
- from misago.conf import settings
- from misago.users.avatars.paths import AVATARS_STORE
- def store_avatar(user, image):
- avatar_dir = get_existing_avatars_dir(user)
- for size in sorted(settings.MISAGO_AVATARS_SIZES, reverse=True):
- image = image.resize((size, size), Image.ANTIALIAS)
- image.save('%s/%s_%s.png' % (avatar_dir, user.pk, size), "PNG")
- def delete_avatar(user):
- avatar_dir = get_existing_avatars_dir(user)
- suffixes_to_delete = settings.MISAGO_AVATARS_SIZES + ('org', 'tmp')
- for size in suffixes_to_delete:
- avatar_file = path('%s/%s_%s.png' % (avatar_dir, user.pk, size))
- if avatar_file.exists():
- avatar_file.remove()
- def store_new_avatar(user, image):
- """
- Deletes old image before storing new one
- """
- delete_avatar(user)
- store_avatar(user, image)
- def get_existing_avatars_dir(user):
- date_dir = unicode(user.joined_on.strftime('%y%m'))
- avatars_dir = path(os.path.join(AVATARS_STORE, date_dir))
- if not avatars_dir.exists():
- avatars_dir.mkdir()
- return avatars_dir
|