o
    gëfX	  ã                   @   sP   d Z ddlmZ ddlmZmZ dZG dd„ deƒZG dd„ deƒZd	eiZ	d
S )a  
TripIt OAuth support.

This adds support for TripIt OAuth service. An application must
be registered first on TripIt and the settings TRIPIT_API_KEY
and TRIPIT_API_SECRET must be defined with the corresponding
values.

User screen name is used to generate username.
é    )Úminidom)ÚConsumerBasedOAuthÚOAuthBackendz%https://api.tripit.com/v1/get/profilec                   @   s"   e Zd ZdZdZdgZdd„ ZdS )ÚTripItBackendz#TripIt OAuth authentication backendÚtripit)Úscreen_namer   c                 C   sT   z|d   dd¡\}}W n ty   |d }d}Y nw |d |d |d ||dœS )z'Return user details from TripIt accountÚnameú é   Ú r   Úemail)Úusernamer   ÚfullnameÚ
first_nameÚ	last_name)ÚsplitÚ
ValueError)ÚselfÚresponser   r   © r   úd/var/www/html/humari/django-venv/lib/python3.10/site-packages/social_auth/backends/contrib/tripit.pyÚget_user_details   s   þüzTripItBackend.get_user_detailsN)Ú__name__Ú
__module__Ú__qualname__Ú__doc__r   Ú
EXTRA_DATAr   r   r   r   r   r      s
    r   c                   @   s0   e Zd ZdZdZdZdZeZdZ	dZ
dd„ Zd	S )
Ú
TripItAuthz%TripIt OAuth authentication mechanismz&https://www.tripit.com/oauth/authorizez*https://api.tripit.com/oauth/request_tokenz)https://api.tripit.com/oauth/access_tokenÚTRIPIT_API_KEYÚTRIPIT_API_SECRETc                 O   sš   |   |t¡}|  |¡}zt |¡}W n
 ty   Y dS w | d¡d  d¡| d¡d jd j	| d¡d jd j	| d¡d j
 d¡d jd j	d	œS )
zReturn user data providedNÚProfiler   ÚrefÚpublic_display_namer   Ú
is_primaryÚaddress)Úidr   r   r   )Úoauth_requestÚTRIPIT_CHECK_AUTHÚfetch_responser   ÚparseStringr   ÚgetElementsByTagNameÚgetAttributeÚ
childNodesÚdataÚ
parentNode)r   Úaccess_tokenÚargsÚkwargsÚrequestÚcontentÚdomr   r   r   Ú	user_data/   s>   
ÿÿÿÿÿÿÿ
ÿþøzTripItAuth.user_dataN)r   r   r   r   ÚAUTHORIZATION_URLÚREQUEST_TOKEN_URLÚACCESS_TOKEN_URLr   ÚAUTH_BACKENDÚSETTINGS_KEY_NAMEÚSETTINGS_SECRET_NAMEr5   r   r   r   r   r   &   s    r   r   N)
r   Úxml.domr   Úsocial_auth.backendsr   r   r'   r   r   ÚBACKENDSr   r   r   r   Ú<module>   s    
ÿ