o
    gëfF  ã                   @   sœ   d Z z
ddlmZ e W n ey   ddlmZ Y nw ddlmZ ddlmZm	Z	 dZ
de
 Zde
 Zde
 ZG d	d
„ d
e	ƒZG dd„ deƒZdeiZdS )ai  
Flickr OAuth support.

This contribution adds support for Flickr OAuth service. The settings
FLICKR_APP_ID and FLICKR_API_SECRET must be defined with the values
given by Flickr application registration process.

By default account id, username and token expiration time are stored in
extra_data field, check OAuthBackend class for details on how to extend it.
é    )Úparse_qs)ÚToken)ÚConsumerBasedOAuthÚOAuthBackendzhttp://www.flickr.com/servicesz%s/oauth/request_tokenz%s/oauth/authorizez%s/oauth/access_tokenc                   @   s$   e Zd ZdZdZg d¢Zdd„ ZdS )ÚFlickrBackendz#Flickr OAuth authentication backendÚflickr))Úidr   )Úusernamer	   )Úexpiresr
   c                 C   s   |  d¡d|  d¡dœS )z'Return user details from Flickr accountr   Ú Úfullname)r	   ÚemailÚ
first_name)Úget)ÚselfÚresponse© r   úd/var/www/html/humari/django-venv/lib/python3.10/site-packages/social_auth/backends/contrib/flickr.pyÚget_user_details(   s   þzFlickrBackend.get_user_detailsN)Ú__name__Ú
__module__Ú__qualname__Ú__doc__ÚnameÚ
EXTRA_DATAr   r   r   r   r   r      s
    r   c                       sH   e Zd ZdZeZeZeZ	e
ZdZdZdd„ Zdd„ Z‡ fdd	„Z‡  ZS )
Ú
FlickrAuthz%Flickr OAuth authentication mechanismÚFLICKR_APP_IDÚFLICKR_API_SECRETc                 C   s‚   |   || j¡}|  |¡}t |¡}t|ƒ}d|v r|d d nd|_d|v r,|d d nd|_d|v r<|d d |_|S d|_|S )z%Return request for access token valueÚ	user_nsidr   Nr   r	   )	Úoauth_requestÚACCESS_TOKEN_URLÚfetch_responser   Úfrom_stringr   r   r   r	   )r   ÚtokenÚrequestr   Úparamsr   r   r   Úaccess_token8   s   

ÿÿÿÿzFlickrAuth.access_tokenc                 O   s   |j |j|jdœS )zLoads user data from service)r   r	   r   )r   r	   r   )r   r&   ÚargsÚkwargsr   r   r   Ú	user_dataJ   s   ýzFlickrAuth.user_datac                    s&   t t| ƒ ¡ pi }d|vrd|d< |S )NÚpermsÚread)Úsuperr   Úauth_extra_arguments)r   r%   ©Ú	__class__r   r   r-   R   s   zFlickrAuth.auth_extra_arguments)r   r   r   r   ÚFLICKR_AUTHORIZATION_URLÚAUTHORIZATION_URLÚFLICKR_REQUEST_TOKEN_URLÚREQUEST_TOKEN_URLÚFLICKR_ACCESS_TOKEN_URLr    r   ÚAUTH_BACKENDÚSETTINGS_KEY_NAMEÚSETTINGS_SECRET_NAMEr&   r)   r-   Ú__classcell__r   r   r.   r   r   /   s    r   r   N)r   Úurlparser   ÚImportErrorÚcgiÚoauth2r   Úsocial_auth.backendsr   r   ÚFLICKR_SERVERr2   r0   r4   r   r   ÚBACKENDSr   r   r   r   Ú<module>   s"    
þ,ÿ