This commit is contained in:
Iliyan Angelov
2025-09-14 23:24:25 +03:00
commit c67067a2a4
71311 changed files with 6800714 additions and 0 deletions

View File

@@ -0,0 +1,63 @@
from django.urls import reverse
from django.utils.http import urlencode
from allauth.socialaccount.providers.base import Provider, ProviderAccount
class DraugiemAccount(ProviderAccount):
def get_avatar_url(self):
ret = None
pic_small_url = self.account.extra_data.get("img")
pic_icon_url = self.account.extra_data.get("imgi")
pic_medium_url = self.account.extra_data.get("imgm")
pic_large_url = self.account.extra_data.get("imgl")
if pic_large_url:
return pic_large_url
elif pic_medium_url:
return pic_medium_url
elif pic_icon_url:
return pic_icon_url
elif pic_small_url:
return pic_small_url
else:
return ret
def to_str(self):
default = super(DraugiemAccount, self).to_str()
name = self.account.extra_data.get("name")
surname = self.account.extra_data.get("surnname")
if name and surname:
return "%s %s" % (name, surname)
return default
class DraugiemProvider(Provider):
id = "draugiem"
name = "Draugiem"
account_class = DraugiemAccount
def get_login_url(self, request, **kwargs):
url = reverse(self.id + "_login")
if kwargs:
url = url + "?" + urlencode(kwargs)
return url
def extract_uid(self, data):
return str(data["uid"])
def extract_common_fields(self, data):
uid = self.extract_uid(data)
user_data = data["users"][uid]
return dict(
first_name=user_data.get("name"),
last_name=user_data.get("surname"),
)
def extract_extra_data(self, data):
uid = self.extract_uid(data)
return data["users"][uid]
provider_classes = [DraugiemProvider]