o
    gëfý  ã                   @   sÊ   d Z ddlZddlZddlZzddlZW n ey3   zddlZW n ey0   ddlmZ Y nw Y nw ddlm	Z	m
Z
 ddlmZ ddlmZ e d¡ZdZG d	d
„ d
e
ƒZG dd„ de	ƒZdeiZdS )zSteam OpenId supporté    N)Ú
simplejson)Ú
OpenIdAuthÚOpenIDBackend)Ú
AuthFailed©Úsettingz#steamcommunity.com/openid/id/(.*?)$zAhttp://api.steampowered.com/ISteamUser/GetPlayerSummaries/v0002/?c                   @   s4   e Zd ZdZdZdd„ Zdd„ Zdd„ Zd	d
„ ZdS )ÚSteamBackendz#Steam OpenId authentication backendÚsteamc                 C   s
   |   |¡S )z)Return user unique id provided by service)Ú_user_id)ÚselfÚdetailsÚresponse© r   ú[/var/www/html/humari/django-venv/lib/python3.10/site-packages/social_auth/backends/steam.pyÚget_user_id   s   
zSteamBackend.get_user_idc              	   C   s”   |   |¡}tt tdƒ|dœ¡ }i }z
t t |¡¡}W n t	t
fy)   Y |S w t|d d ƒdkrH|d d d }| d¡dddd|dœ}|S )	NÚSTEAM_API_KEY)ÚkeyÚsteamidsr   Úplayersr   ÚpersonanameÚ )ÚusernameÚemailÚfullnameÚ
first_nameÚ	last_nameÚplayer)r
   Ú	USER_INFOÚurllibÚ	urlencoder   r   ÚloadÚurllib2ÚurlopenÚ
ValueErrorÚIOErrorÚlenÚget)r   r   Úuser_idÚurlr   r   r   r   r   Úget_user_details   s*   

ÿ
õûzSteamBackend.get_user_detailsc                 C   s   |d S )Nr   r   )r   ÚuserÚuidr   r   r   r   r   Ú
extra_data3   s   zSteamBackend.extra_datac                 C   s(   t  |j¡}|d u rt| dƒ‚| d¡S )NzMissing Steam Idé   )ÚSTEAM_IDÚsearchÚidentity_urlr   Úgroup)r   r   Úmatchr   r   r   r
   6   s   

zSteamBackend._user_idN)	Ú__name__Ú
__module__Ú__qualname__Ú__doc__Únamer   r)   r,   r
   r   r   r   r   r      s    r   c                   @   s(   e Zd ZdZeZdd„ Zedd„ ƒZdS )Ú	SteamAuthzSteam OpenId authenticationc                 C   s   dS )zReturn Steam OpenId service urlz http://steamcommunity.com/openidr   )r   r   r   r   Ú
openid_urlA   s   zSteamAuth.openid_urlc                 C   s   t dƒduS )z5Steam OpenId is enabled when STEAM_API_KEY is definedr   Nr   )Úclsr   r   r   ÚenabledE   s   zSteamAuth.enabledN)	r3   r4   r5   r6   r   ÚAUTH_BACKENDr9   Úclassmethodr;   r   r   r   r   r8   =   s    r8   r	   )r6   Úrer   r!   Újsonr   ÚImportErrorÚdjango.utilsÚsocial_auth.backendsr   r   Úsocial_auth.exceptionsr   Úsocial_auth.utilsr   Úcompiler.   r   r   r8   ÚBACKENDSr   r   r   r   Ú<module>   s.    ÿ€ý
&ÿ