
    $gY                     :    d Z ddlZddlmZ  G d de          ZdS )zn
Reddit OAuth2 backend, docs at:
    https://python-social-auth.readthedocs.io/en/latest/backends/reddit.html
    N   )
BaseOAuth2c                   j     e Zd ZdZdZdZdZdZdZdZ	dZ
dgZd	Zg d
Zd Zd Zd Zd fd	Zd Z xZS )RedditOAuth2z$Reddit OAuth2 authentication backendredditz'https://ssl.reddit.com/api/v1/authorizez*https://ssl.reddit.com/api/v1/access_tokenPOSTF,identityT))idr   )nameusername)
link_karmar   )comment_karmar   )refresh_tokenr   )
expires_inexpiresc                 8    |                     d          dddddS )z'Return user details from Reddit accountr    )r   emailfullname
first_name	last_name)get)selfresponses     [/var/www/html/netbox-4.1.3/venv/lib/python3.11/site-packages/social_core/backends/reddit.pyget_user_detailszRedditOAuth2.get_user_details    s.     !V,,
 
 	
    c                 :    |                      ddd|z   i          S )zLoads user data from servicez'https://oauth.reddit.com/api/v1/me.jsonAuthorizationzbearer )headers)get_json)r   access_tokenargskwargss       r   	user_datazRedditOAuth2.user_data*   s-    }}5$i,&>?  
 
 	
r   c                     ddt          j         dj        |                                                                            z   iS )Nr    s   Basic z{}:{})base64urlsafe_b64encodeformatget_key_and_secretencoder   s    r   auth_headerszRedditOAuth2.auth_headers1   sJ    Y& 7 7 9 9:AACC 
 	
r   Nc                 b    t                                          |          }| j        p||d<   |S )Nredirect_uri)superrefresh_token_paramsr0   )r   tokenr0   r$   r%   params	__class__s         r   r2   z!RedditOAuth2.refresh_token_params9   s1    --e44!%!2!Bl~r   c                 *    |                                  S N)r+   r-   s    r   auth_complete_credentialsz&RedditOAuth2.auth_complete_credentials>   s    &&(((r   r7   )__name__
__module____qualname____doc__r   AUTHORIZATION_URLACCESS_TOKEN_URLACCESS_TOKEN_METHODREFRESH_TOKEN_METHODREDIRECT_STATESCOPE_SEPARATORDEFAULT_SCOPESEND_USER_AGENT
EXTRA_DATAr   r&   r.   r2   r8   __classcell__)r5   s   @r   r   r      s        ..DAC !NOLMO  J
 
 

 
 

 
 
     
) ) ) ) ) ) )r   r   )r<   r(   oauthr   r    r   r   <module>rI      s`    
       4) 4) 4) 4) 4): 4) 4) 4) 4) 4)r   