o
    gëf¦
  ã                   @   sÈ   d Z ddlmZ 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 ddl	m
Z
mZ ddlmZ dZd	Zd
ZdZddgZG dd„ deƒZG dd„ de
ƒZdeiZdS )a™  
MSN Live Connect oAuth 2.0

Settings:
LIVE_CLIENT_ID
LIVE_CLIENT_SECRET
LIVE_EXTENDED_PERMISSIONS (defaults are: wl.basic, wl.emails)

References:
* oAuth  http://msdn.microsoft.com/en-us/library/live/hh243649.aspx
* Scopes http://msdn.microsoft.com/en-us/library/live/hh243646.aspx
* REST   http://msdn.microsoft.com/en-us/library/live/hh243648.aspx

Throws:
AuthUnknownError - if user data retrieval fails
é    )Ú	urlencodeN)Ú
simplejson)Údsa_urlopen)Ú
BaseOAuth2ÚOAuthBackend)ÚAuthUnknownErrorz,https://login.live.com/oauth20_authorize.srfz(https://login.live.com/oauth20_token.srfzhttps://apis.live.net/v5.0/mezlive.comzwl.basicz	wl.emailsc                   @   s(   e Zd ZdZg d¢Zdd„ Zdd„ ZdS )ÚLiveBackendÚlive))Úidr
   )Úaccess_tokenr   )Úreset_tokenr   )Úexpiresr   )Úemailr   )Ú
first_namer   )Ú	last_namer   c                 C   s   |d S )Nr
   © )ÚselfÚdetailsÚresponser   r   úb/var/www/html/humari/django-venv/lib/python3.10/site-packages/social_auth/backends/contrib/live.pyÚget_user_id5   s   zLiveBackend.get_user_idc                 C   sH   z|d d }W n t y   d}Y nw | d¡|| d¡| d¡dœS )z-Return user details from Live Connect accountÚemailsÚaccountÚ Únamer   r   )Úusernamer   r   r   )ÚKeyErrorÚget)r   r   r   r   r   r   Úget_user_details8   s   ÿýzLiveBackend.get_user_detailsN)Ú__name__Ú
__module__Ú__qualname__r   Ú
EXTRA_DATAr   r   r   r   r   r   r   (   s
    
r   c                   @   s4   e Zd ZeZeZeZdZ	dZ
dZdZeZdd„ ZdS )ÚLiveAuthÚLIVE_CLIENT_IDÚLIVE_CLIENT_SECRETú,ÚLIVE_EXTENDED_PERMISSIONSc              	   O   s@   t d td|iƒ }zt t|ƒ¡W S  ttfy   tdƒ‚w )zLoads user data from serviceú?r   z7Error during profile retrieval, please, try again later)ÚLIVE_USER_DATA_URLr   r   Úloadr   Ú
ValueErrorÚIOErrorr   )r   r   ÚargsÚkwargsÚurlr   r   r   Ú	user_dataO   s   ÿÿzLiveAuth.user_dataN)r   r    r!   ÚLIVE_AUTHORIZATION_URLÚAUTHORIZATION_URLÚLIVE_ACCESS_TOKEN_URLÚACCESS_TOKEN_URLr   ÚAUTH_BACKENDÚSETTINGS_KEY_NAMEÚSETTINGS_SECRET_NAMEÚSCOPE_SEPARATORÚSCOPE_VAR_NAMEÚLIVE_DEFAULT_PERMISSIONSÚDEFAULT_SCOPEr0   r   r   r   r   r#   E   s    r#   r	   )Ú__doc__Úurllibr   Újsonr   ÚImportErrorÚdjango.utilsÚsocial_auth.utilsr   Úsocial_auth.backendsr   r   Úsocial_auth.exceptionsr   r1   r3   r)   ÚLIVE_SERVERr:   r   r#   ÚBACKENDSr   r   r   r   Ú<module>   s0    ÿ€ýÿ