Files
GNX-mailEnterprise/venv/lib/python3.12/site-packages/allauth/socialaccount/providers/telegram/provider.py
Iliyan Angelov c67067a2a4 Mail
2025-09-14 23:24:25 +03:00

49 lines
1.3 KiB
Python

from django.urls import reverse
from django.utils.http import urlencode
from allauth.socialaccount.providers.base import Provider, ProviderAccount
class TelegramAccount(ProviderAccount):
pass
class TelegramProvider(Provider):
id = "telegram"
name = "Telegram"
account_class = TelegramAccount
def get_login_url(self, request, **kwargs):
url = reverse("telegram_login")
if kwargs:
url = url + "?" + urlencode(kwargs)
return url
def extract_uid(self, data):
return str(data["id"])
def extract_common_fields(self, data):
ret = {}
if data.get("first_name"):
ret["first_name"] = data.get("first_name")
if data.get("last_name"):
ret["last_name"] = data.get("last_name")
if data.get("username"):
ret["username"] = data.get("username")
return ret
def get_auth_date_validity(self):
auth_date_validity = 30
settings = self.get_settings()
if "AUTH_PARAMS" in settings:
auth_date_validity = settings.get("AUTH_PARAMS").get(
"auth_date_validity", auth_date_validity
)
auth_date_validity = self.app.settings.get(
"auth_date_validity", auth_date_validity
)
return auth_date_validity
provider_classes = [TelegramProvider]