mirror of
https://github.com/fergalmoran/dss.api.git
synced 2025-12-22 09:18:13 +00:00
35 lines
1.3 KiB
Python
35 lines
1.3 KiB
Python
from django.core.files.base import ContentFile
|
|
from requests import request, ConnectionError
|
|
|
|
|
|
def save_profile(backend, user, response, is_new, *args, **kwargs):
|
|
if backend.name == 'google-oauth2':
|
|
if response.get('image') and response['image'].get('url'):
|
|
url = response['image'].get('url')
|
|
profile = user.userprofile
|
|
|
|
try:
|
|
response = request('GET', url)
|
|
response.raise_for_status()
|
|
except ConnectionError:
|
|
pass
|
|
else:
|
|
profile.avatar_image.save(u'',
|
|
ContentFile(response.content),
|
|
save=False)
|
|
profile.save()
|
|
elif backend.name == 'facebook':
|
|
profile = user.userprofile
|
|
url = 'http://graph.facebook.com/{0}/picture'.format(response['id'])
|
|
try:
|
|
response = request('GET', url, params={'type': 'large'})
|
|
response.raise_for_status()
|
|
except ConnectionError:
|
|
pass
|
|
else:
|
|
profile.avatar_image.save(u'',
|
|
ContentFile(response.content),
|
|
save=False
|
|
)
|
|
profile.save()
|