mirror of
https://github.com/fergalmoran/dss.api.git
synced 2026-01-03 23:24:01 +00:00
Made avatar images local again
This commit is contained in:
@@ -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:
|
||||
|
||||
@@ -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)
|
||||
|
||||
Reference in New Issue
Block a user