Made avatar images local again

This commit is contained in:
Fergal Moran
2015-08-03 20:53:07 +01:00
parent bacb9b5e2e
commit 967f0d0d2a
2 changed files with 27 additions and 4 deletions

View File

@@ -1,14 +1,26 @@
import urllib2
from allauth.socialaccount.models import SocialAccount
from azure.storage import BlobService
from django.core.files.base import ContentFile
from django.core.files.base import File
from django.core.files.temp import NamedTemporaryFile
from django.core.management.base import NoArgsCommand
from requests import request, ConnectionError
from dss import storagesettings
from dss import storagesettings
from spa.models.userprofile import UserProfile
def save_image(profile, url):
img = NamedTemporaryFile(delete=True)
img.write(urllib2.urlopen(url).read())
img.flush()
profile.avatar_image.save(str(profile.id), File(img))
def save_image_to_azure(profile, url):
try:
response = request('GET', url)
response.raise_for_status()
@@ -40,6 +52,7 @@ class Command(NoArgsCommand):
if provider_account:
avatar_url = provider_account.get_avatar_url()
save_image(user, avatar_url)
user.save()
except Exception, ex:
print ex.message
else:

View File

@@ -168,7 +168,6 @@ 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")
@@ -179,7 +178,18 @@ class UserProfile(BaseModel):
return UserProfile.get_default_avatar_image()
def get_avatar_image(self):
return (settings.CDN_URL + 'avatars/{0}').format(self.id)
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()
def get_profile_url(self):
return '/user/%s' % (self.slug)