
    f                         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
e      Zd Zd Z G d de      ZegZy)    )settings)ImproperlyConfigured)reverse)	urlencode)get_adapter)OpenIDAccountOpenIDProviderz&allauth.socialaccount.providers.openidzTThe steam provider requires 'allauth.socialaccount.providers.openid' to be installedc                   *     e Zd Z fdZd Zd Z xZS )SteamAccountc                 t    t         t        |          }| j                  j                  j                  d|      S )Npersonaname)superr   to_straccount
extra_dataget)selfdflt	__class__s     i/var/www/cs2snipe.com/venv/lib/python3.12/site-packages/allauth/socialaccount/providers/steam/provider.pyr   zSteamAccount.to_str   s/    \4/1||&&**=$??    c                 L    | j                   j                  j                  d      S )N
profileurlr   r   r   r   s    r   get_profile_urlzSteamAccount.get_profile_url   s    ||&&**<88r   c                     | j                   j                  j                  d      xsL | j                   j                  j                  d      xs% | j                   j                  j                  d      S )N
avatarfullavatarmediumavatarr   r   s    r   get_avatar_urlzSteamAccount.get_avatar_url   sY    LL##''5 5||&&**>:5||&&**84	
r   )__name__
__module____qualname__r   r   r!   __classcell__r   s   @r   r   r      s    @9
r   r   c                 Z    d}| j                  |      st        |       | t        |      d  S )Nz%https://steamcommunity.com/openid/id/)
startswith
ValueErrorlen)urlprefixs     r   extract_steam_idr-   #   s.    4F>>&!os6{}r   c                    d}d}| |d}t               j                         j                  ||z   |      }|j                          |j	                         }|j                  di       j                  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methodr1   respdata
playerlists           r   request_steam_account_summaryr?   *   s    .H3F(3F=--/33Hv4Ef3UD99;D*b)--i<J&:a=AY,AAr   c                   R     e Zd ZdZdZeZdZd
 fd	Zd Z	 fdZ
d Zd Zd	 Z xZS )SteamOpenIDProvidersteamSteamTc                 t    |$t               j                  || j                        }t        |   ||       y )N)app)r   get_appidr   __init__)r   requestrE   r   s      r   rH   zSteamOpenIDProvider.__init__=   s2    ;-''9Cc*r   c                 B    t        d      }|r|dt        |      z   z  }|S )Nsteam_login?)r   r   )r   rI   kwargsr+   s       r   get_login_urlz!SteamOpenIDProvider.get_login_urlB   s(    m$36***C
r   c                     t        |j                        }| j                  j                  }t	        ||      |_        t        t        | #  ||      S N)	r-   identity_urlrE   secretr?   _extrar   rA   sociallogin_from_response)r   rI   r2   r9   steam_api_keyr   s        r   rT   z-SteamOpenIDProvider.sociallogin_from_responseH   sH    #H$9$9:7xP($IX
 	
r   c                      |j                   d   S )Nr4   )rS   r   r2   s     r   extract_uidzSteamOpenIDProvider.extract_uidP   s    y))r   c                 6    |j                   j                         S rP   )rS   copyrW   s     r   extract_extra_dataz&SteamOpenIDProvider.extract_extra_dataS   s    ##%%r   c                    |j                   j                  dd      j                         }|j                  d      dk(  r|j	                         \  }}n|d}}|j                   j                  dd      }|xs |j                   d   |||dS )Nrealname     r   r4   )username
first_name	last_name	full_name)rS   r   stripcountsplit)r   r2   rd   rb   rc   ra   s         r   extract_common_fieldsz)SteamOpenIDProvider.extract_common_fieldsV   s    OO''
B7==?	??31$$-OO$5!J	$-r	J??&&}b9 !>HOOI$>$""	
 	
r   rP   )r"   r#   r$   rG   namer   account_class	uses_appsrH   rN   rT   rX   r[   rh   r%   r&   s   @r   rA   rA   7   s5    	BD MI+

*&
r   rA   N)django.confr   django.core.exceptionsr   django.urlsr   django.utils.httpr   allauth.socialaccount.adapterr   /allauth.socialaccount.providers.openid.providerr   r	   INSTALLED_APPSr   r-   r?   rA   provider_classes r   r   <module>ru      sh      7  ' 5 ,83J3JJ
^ 

= 
 
B-
. -
` (( r   