Browse Source

Updated blank avatar update util

Rafał Pitoń 11 years ago
parent
commit
d9cb9549cd
1 changed files with 20 additions and 13 deletions
  1. 20 13
      misago/users/management/commands/updateblankavatar.py

+ 20 - 13
misago/users/management/commands/updateblankavatar.py

@@ -1,25 +1,32 @@
+import os
+
+from path import path
 from PIL import Image
 
+from django.conf import settings
 from django.core.management.base import BaseCommand
 
-from misago.users.avatars import store
-from misago.users.avatars.paths import BLANK_AVATAR
+from misago.users.avatars.paths import AVATARS_STORE, BLANK_AVATAR
 
 
-class FakeDate(object):
-    def strftime(self, format=''):
-        return 'blank'
+class Command(BaseCommand):
+    help = 'Updates stored blank avatar.'
 
+    def handle(self, *args, **options):
+        avatars_dir = path(os.path.join(AVATARS_STORE, 'blank'))
 
-class FakeUser(object):
-    pk = 'blank'
-    id = 'blank'
-    joined_on = FakeDate()
+        # Empty existing blank avatar
+        if avatars_dir.exists():
+            avatars_dir.rmtree()
+        avatars_dir.mkdir()
 
+        # Generate new images
+        image = Image.open(BLANK_AVATAR)
+        for size in sorted(settings.MISAGO_AVATARS_SIZES, reverse=True):
+            avatar_file = '%s.png' % size
+            avatar_file = path(os.path.join(avatars_dir, avatar_file))
 
-class Command(BaseCommand):
-    help = 'Updates stored blank avatar.'
+            image = image.resize((size, size), Image.ANTIALIAS)
+            image.save(avatar_file, "PNG")
 
-    def handle(self, *args, **options):
-        store.store_new_avatar(FakeUser, Image.open(BLANK_AVATAR))
         self.stdout.write('Blank avatar was updated.')