o
    gëf†	  ã                   @   s´   zd dl ZW n ey%   zd dlZW n ey"   d dlmZ Y nw Y nw d dlmZmZ d dlmZm	Z	 d dl
mZ dZdZdZd	ZG d
d„ deƒZG dd„ deƒZdeiZdS )é    N)Ú
simplejson)Ú
BaseOAuth2ÚOAuthBackend)Údsa_urlopenÚbackend_setting)Ú	urlencodez
disqus.comz+https://disqus.com/api/oauth/2.0/authorize/z.https://disqus.com/api/oauth/2.0/access_token/z-https://disqus.com/api/3.0/users/details.jsonc                       s8   e Zd ZdZg d¢Zdd„ Zdd„ Z‡ fdd„Z‡  ZS )	ÚDisqusBackendÚdisqus)
)Úavatarr
   )Úconnectionsr   )Úuser_idr   )Úemailr   )Ú
email_hashÚ	emailHash)Úexpiresr   )Úlocationr   )ÚmetaÚresponse)Únamer   )Úusernamer   c                 C   s   |d d S )Nr   Úid© )ÚselfÚdetailsr   r   r   úd/var/www/html/humari/django-venv/lib/python3.10/site-packages/social_auth/backends/contrib/disqus.pyÚget_user_id$   s   zDisqusBackend.get_user_idc                 C   s:   |  di ¡}|  dd¡|  dd¡|  dd¡|  dd¡dœS )z'Return user details from Disqus accountr   r   Ú r   r   r   )r   r   r   r   )Úget)r   r   Úrrr   r   r   Úget_user_details'   s   



üzDisqusBackend.get_user_detailsc                    s.   t |fi | di ¡¤Ž}tt| ƒ ||||¡S )Nr   )Údictr   Úsuperr   Ú
extra_data)r   ÚuserÚuidr   r   Úmeta_response©Ú	__class__r   r   r"   2   s   ÿzDisqusBackend.extra_data)	Ú__name__Ú
__module__Ú__qualname__r   Ú
EXTRA_DATAr   r   r"   Ú__classcell__r   r   r&   r   r      s    r   c                   @   s,   e Zd ZdZeZeZeZ	dZ
dZdd„ ZdS )Ú
DisqusAuthzDisqus OAuth mechanismÚDISQUS_CLIENT_IDÚDISQUS_CLIENT_SECRETc                 O   sH   |t | | jƒdœ}td t|ƒ }zt t|ƒ¡W S  ty#   Y dS w )zLoads user data from service)Úaccess_tokenÚ
api_secretú?N)r   ÚSETTINGS_SECRET_NAMEÚDISQUS_CHECK_AUTHr   r   Úloadr   Ú
ValueError)r   r0   ÚargsÚkwargsÚparamsÚurlr   r   r   Ú	user_data@   s   
þÿzDisqusAuth.user_dataN)r(   r)   r*   Ú__doc__ÚDISQUS_AUTHORIZATION_URLÚAUTHORIZATION_URLÚDISQUS_ACCESS_TOKEN_URLÚACCESS_TOKEN_URLr   ÚAUTH_BACKENDÚSETTINGS_KEY_NAMEr3   r;   r   r   r   r   r-   8   s    r-   r	   )Újsonr   ÚImportErrorÚdjango.utilsÚsocial_auth.backendsr   r   Úsocial_auth.utilsr   r   Úurllibr   ÚDISQUS_SERVERr=   r?   r4   r   r-   ÚBACKENDSr   r   r   r   Ú<module>   s*    ÿ€ý$ÿ