gallery.py 1.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455
  1. from path import path
  2. from PIL import Image
  3. from django.conf import settings
  4. from misago.users.avatars import cache
  5. from misago.users.avatars.paths import MEDIA_AVATARS
  6. def get_available_galleries():
  7. """
  8. Returns list of dicts containing 'name' and list of images
  9. Only jpgs, gifs and pngs are supported avatar images.
  10. Galleries are
  11. """
  12. galleries = []
  13. for directory in path(MEDIA_AVATARS).dirs():
  14. if directory[-8:] != '_default':
  15. gallery = {'name': directory.name, 'images': []}
  16. images = directory.files('*.gif')
  17. images += directory.files('*.jpg')
  18. images += directory.files('*.jpeg')
  19. images += directory.files('*.png')
  20. for image in images:
  21. gallery['images'].append(image[len(settings.MEDIA_ROOT):])
  22. if gallery['images']:
  23. galleries.append(gallery)
  24. return galleries
  25. def galleries_exist():
  26. return bool(get_available_galleries())
  27. def is_avatar_from_gallery(image_path):
  28. for gallery in get_available_galleries():
  29. if image_path in gallery['images']:
  30. return True
  31. else:
  32. return False
  33. def set_avatar(user, gallery_image_path):
  34. image = Image.open(settings.MEDIA_ROOT + gallery_image_path)
  35. cache.store_new_avatar(user, image)
  36. def set_random_avatar(user):
  37. pass