o
    ˷e                     @   s\   d Z ddlZddlmZmZmZ ddlmZmZm	Z	 G dd deZ
ee
Zee
ZdS )zP
Views for PatreonProvider
https://www.patreon.com/platform/documentation/oauth
    N)OAuth2AdapterOAuth2CallbackViewOAuth2LoginView   )API_URL
USE_API_V2PatreonProviderc                   @   s6   e Zd ZejZdZdZde	e
rdndZdd ZdS )	PatreonOAuth2Adapterz(https://www.patreon.com/api/oauth2/tokenz(https://www.patreon.com/oauth2/authorizez{0}/{1}zidentity?include=memberships&fields%5Buser%5D=email,first_name,full_name,image_url,last_name,social_connections,thumb_url,url,vanitycurrent_userc              	   K   s   t j| jdd|j id}| d}trVz0|d d d d d }d	t|}t j|dd|j id}	|	 d
 d d d }
|
|d< W n tt	fyU   d |d< Y nw | 
 ||S )NAuthorizationzBearer )headersdatarelationshipsmembershipsr   idzG{0}/members/{1}?include=currently_entitled_tiers&fields%5Btier%5D=titleincluded
attributestitlepledge_level)requestsgetprofile_urltokenjsonr   formatr   KeyError
IndexErrorget_providersociallogin_from_response)selfrequestappr   kwargsresp
extra_data	member_id
member_urlresp_memberpledge_title r)   d/var/www/ideatree/venv/lib/python3.10/site-packages/allauth/socialaccount/providers/patreon/views.pycomplete_login   s,   z#PatreonOAuth2Adapter.complete_loginN)__name__
__module____qualname__r   r   provider_idaccess_token_urlauthorize_urlr   r   r   r   r+   r)   r)   r)   r*   r	      s    	r	   )__doc__r   ,allauth.socialaccount.providers.oauth2.viewsr   r   r   providerr   r   r   r	   adapter_viewoauth2_loginoauth2_callbackr)   r)   r)   r*   <module>   s    
)