o
    LfG                     @   s   d dl mZ d dlmZ d dlmZ d dlmZ d dlm	Z	 d dl
mZmZ dejvr/edG d	d
 d
eZdd Zdd ZG dd deZegZdS )    )settings)ImproperlyConfigured)reverse)	urlencode)get_adapter)OpenIDAccountOpenIDProviderz&allauth.socialaccount.providers.openidzTThe steam provider requires 'allauth.socialaccount.providers.openid' to be installedc                       s,   e Zd Z fddZdd Zdd Z  ZS )SteamAccountc                    s   t t|  }| jjd|S )Npersonaname)superr	   to_straccount
extra_dataget)selfdflt	__class__ o/var/www/html/humari/django-venv/lib/python3.10/site-packages/allauth/socialaccount/providers/steam/provider.pyr      s   zSteamAccount.to_strc                 C   s   | j jdS )N
profileurlr   r   r   r   r   r   r   get_profile_url   s   zSteamAccount.get_profile_urlc                 C   s*   | j jdp| j jdp| j jdS )N
avatarfullavatarmediumavatarr   r   r   r   r   get_avatar_url   s
   zSteamAccount.get_avatar_url)__name__
__module____qualname__r   r   r   __classcell__r   r   r   r   r	      s    r	   c                 C   s
   |  dS )Nz%https://steamcommunity.com/openid/id/)lstrip)urlr   r   r   extract_steam_id#      
r$   c                 C   sb   d}d}| |d}t   j|| |d}|  | }|di dg }|r-|d S d|iS )	Nzhttps://api.steampowered.com/z$ISteamUser/GetPlayerSummaries/v0002/)keysteamids)paramsresponseplayersr   steamid)r   get_requests_sessionr   raise_for_statusjson)api_keysteam_idapi_basemethodr(   respdata
playerlistr   r   r   request_steam_account_summary'   s   
r6   c                       sZ   e Zd ZdZdZeZdZd fdd	Zdd Z	 fd	d
Z
dd Zdd Zdd Z  ZS )SteamOpenIDProvidersteamSteamTNc                    s,   |d u rt  || j}t j||d d S )N)app)r   get_appidr   __init__)r   requestr:   r   r   r   r=   :   s   zSteamOpenIDProvider.__init__c                 K   s    t d}|r|dt| 7 }|S )Nsteam_login?)r   r   )r   r>   kwargsr#   r   r   r   get_login_url?   s   z!SteamOpenIDProvider.get_login_urlc                    s0   t |j}| jj}t|||_tt| ||S N)	r$   identity_urlr:   secretr6   _extrar   r7   sociallogin_from_response)r   r>   r)   r0   steam_api_keyr   r   r   rG   E   s   

z-SteamOpenIDProvider.sociallogin_from_responsec                 C   s
   |j d S )Nr+   )rF   r   r)   r   r   r   extract_uidM   r%   zSteamOpenIDProvider.extract_uidc                 C   s
   |j  S rC   )rF   copyrI   r   r   r   extract_extra_dataP   r%   z&SteamOpenIDProvider.extract_extra_datac                 C   s^   |j dd }|ddkr| \}}n|d}}|j dd}|p)|j d |||dS )Nrealname     r
   r+   )username
first_name	last_name	full_name)rF   r   stripcountsplit)r   r)   rT   rR   rS   rQ   r   r   r   extract_common_fieldsS   s   
z)SteamOpenIDProvider.extract_common_fieldsrC   )r   r   r    r<   namer	   account_class	uses_appsr=   rB   rG   rJ   rL   rX   r!   r   r   r   r   r7   4   s    r7   N)django.confr   django.core.exceptionsr   django.urlsr   django.utils.httpr   allauth.socialaccount.adapterr   /allauth.socialaccount.providers.openid.providerr   r   INSTALLED_APPSr	   r$   r6   r7   provider_classesr   r   r   r   <module>   s    

0