From 8e0d15399f57a2c5c480cee3e26083a7ab0f9a42 Mon Sep 17 00:00:00 2001 From: Fergal Moran Date: Mon, 27 Jul 2015 22:04:10 +0100 Subject: [PATCH] Azure all the things --- spa/management/commands/get_avatars.py | 17 +++++++++++++---- spa/models/fields.py | 4 +++- spa/models/userprofile.py | 14 ++------------ 3 files changed, 18 insertions(+), 17 deletions(-) diff --git a/spa/management/commands/get_avatars.py b/spa/management/commands/get_avatars.py index 2ff750d..eccda8d 100755 --- a/spa/management/commands/get_avatars.py +++ b/spa/management/commands/get_avatars.py @@ -1,7 +1,10 @@ from allauth.socialaccount.models import SocialAccount +from azure.storage import BlobService from django.core.files.base import ContentFile from django.core.management.base import NoArgsCommand from requests import request, ConnectionError +from dss import storagesettings + from spa.models.userprofile import UserProfile @@ -12,10 +15,16 @@ def save_image(profile, url): except ConnectionError: pass else: - profile.avatar_image.save(u'', - ContentFile(response.content), - save=False) - profile.save() + service = BlobService( + account_name=storagesettings.AZURE_ACCOUNT_NAME, + account_key=storagesettings.AZURE_ACCOUNT_KEY) + + service.put_block_blob_from_bytes( + 'avatars', + profile.id, + response.content, + x_ms_blob_content_type=response.headers['content-type'] + ) class Command(NoArgsCommand): diff --git a/spa/models/fields.py b/spa/models/fields.py index f44c3b2..27896e6 100755 --- a/spa/models/fields.py +++ b/spa/models/fields.py @@ -102,4 +102,6 @@ try: from south.modelsinspector import add_introspection_rules add_introspection_rules([], ['^spa\.models.fields\.MultiSelectField']) except ImportError: - pass \ No newline at end of file + pass + + diff --git a/spa/models/userprofile.py b/spa/models/userprofile.py index f3f2aa5..5898e01 100755 --- a/spa/models/userprofile.py +++ b/spa/models/userprofile.py @@ -168,6 +168,7 @@ class UserProfile(BaseModel): return self.display_name or self.first_name + ' ' + self.last_name def get_sized_avatar_image(self, width, height): + return self.get_avatar_image() try: image = self.get_avatar_image() sized = thumbnail.get_thumbnail(image, "%sx%s" % (width, height), crop="center") @@ -178,18 +179,7 @@ class UserProfile(BaseModel): return UserProfile.get_default_avatar_image() def get_avatar_image(self): - avatar_type = self.avatar_type - if avatar_type == 'gravatar': - gravatar_exists = has_gravatar(self.email) - if gravatar_exists: - return get_gravatar_url(self.email) - else: - if os.path.exists(self.avatar_image.file.name): - return self.avatar_image - else: - return self.get_default_avatar_image() - - return UserProfile.get_default_avatar_image() + return (settings.CDN_URL + 'avatars/{0}').format(self.id) def get_profile_url(self): return '/user/%s' % (self.slug)