
    f                     j    d dl mZ d dlmZ d dlmZ d dlmZ d dl	m
Z
mZmZ d dlmZ  G d de
      Zy	)
    )	urlencode)HttpResponseRedirect)gettext)get_adapter)OAuthClient
OAuthErrorget_token_prefix)build_absolute_uric                       e Zd Zd Zd Zd Zy)PocketOAuthClientc                    | j                   t        | j                  | j                        }ddi}| j                  |d}t               j                         j                  | j                  ||      }|j                  dk7  r*t        t        d      t        | j                        z        |j                         d   | _         | j                   | j                  j                  dt        | j                        z  <   | j                   S )	z
        Obtain a temporary request token to authorize an access token and to
        sign the request to obtain the access token
        X-Acceptapplication/json)consumer_keyredirect_uri)urljsonheaders   z9Invalid response while obtaining request token from "%s".codezoauth_%s_request_token)request_tokenr
   requestcallback_urlr   r   get_requests_sessionpostrequest_token_urlstatus_coder   _r	   r   session)selfredirect_urlr   dataresponses        h/var/www/cs2snipe.com/venv/lib/python3.12/site-packages/allauth/socialaccount/providers/pocket/client.py_get_request_tokenz$PocketOAuthClient._get_request_token   s
   
 %-dllD<M<MNL.G !% 1 1 ,D
 %%'..#    ##s* TU&t'='=>?  "*!8D "" LL  (+;D<R<R+SS !!!    c                     | j                         }|| j                  j                  | j                        d}|j	                  |       |dz   t        |      z   }t        |      S )zy
        Returns a ``HttpResponseRedirect`` object to redirect the user
        to the Pocket authorization URL.
        )r   r   ?)r%   r   r
   r   updater   r   )r    authorization_urlextra_paramsr   paramsr   s         r$   get_redirectzPocketOAuthClient.get_redirect2   sa    
 //1* LL;;D<M<MN
 	l##%	&(99#C((r&   c                 
   | j                   | j                         }| j                  }ddi}| j                  |d}t	               j                         j                  |||      }|j                  dk7  r*t        t        d      t        | j                        z        |j                         }||d   |d   d	| _         | j                   | j                  j                  d
t        | j                        z  <   | j                   S )zb
        Obtain the access token to access private resources at the API
        endpoint.
        r   r   )r   r   )r   r   r   r   z8Invalid response while obtaining access token from "%s".access_tokenusername)oauth_tokenoauth_token_secretr0   zoauth_%s_access_token)r/   _get_rt_from_sessionaccess_token_urlr   r   r   r   r   r   r   r	   r   r   r   r   )r    r   r   r   r"   r#   rs          r$   get_access_tokenz"PocketOAuthClient.get_access_token@   s   
 $ 557M''C.G !% 1 1%D
 %%'#wT: 
 ##s* ST&t'='=>?  A,&'&7jM!D !! LL  '*:4;Q;Q*RR    r&   N)__name__
__module____qualname__r%   r-   r6    r&   r$   r   r      s     "D)#!r&   r   N)urllib.parser   django.httpr   django.utils.translationr   r   allauth.socialaccount.adapterr   ,allauth.socialaccount.providers.oauth.clientr   r   r	   allauth.utilsr
   r   r:   r&   r$   <module>rA      s.    " , 1 5 
 -T! T!r&   