
    fx
                        d dl Z d dlZd dlZd dlZd dlZd dlZ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 d dlmZmZ d dlmZ d d	lmZ  G d
 de      Zej1                         Z e	ed       G d de             Zej1                         Zy)    Nrender)method_decorator)View)csrf_exempt)get_adapter)complete_social_loginrender_authentication_error)BaseLoginView)TelegramProviderc                   $    e Zd Zej                  Zy)	LoginViewN)__name__
__module____qualname__r   idprovider_id     i/var/www/cs2snipe.com/venv/lib/python3.12/site-packages/allauth/socialaccount/providers/telegram/views.pyr   r      s    "%%Kr   r   dispatch)namec                       e Zd Zd Zd Zy)CallbackViewc                     t        |d      S )Nztelegram/callback.htmlr   )selfrequests     r   getzCallbackView.get   s    g788r   c                    t               }|j                  |t        j                        }|j                  j                  d      }|st        ||      S 	 |j                  j                  d      }ddt        |      dz  z
  z  }t        j                  t        j                  ||z               }t        |t              rd|vrt        d      	 |j'                  d      }	d
j)                  t+        |j-                         D 
cg c]  \  }
}dj/                  |
|       c}}
            }|j0                  j2                  }t5        j6                  |j9                               j;                         }t=        j>                  ||j9                         t4        j6                        jA                         }tC        |j'                  d            }|jE                         }|	|k7  stG        jF                         |z
  |kD  rt        ||||d      S |jI                  ||      }|jK                  ||      |_&        tO        ||      S # t         j"                  t        j$                  t        f$ r}t        |||d|i	      cY d }~S d }~ww xY wc c}}
w )Nstate)providertgAuthResult=   hashzInvalid tgAuthResultstate_id)r!   	exceptionextra_context
z{}={}	auth_date)responser&   )r!   r(   )(r   get_providerr   r   GETr   r
   POSTlenjsonloadsbase64	b64decode
isinstancedict
ValueErrorbinasciiErrorJSONDecodeErrorpopjoinsorteditemsformatappsecrethashlibsha256encodedigesthmacnew	hexdigestintget_auth_date_validitytimesociallogin_from_responseunstash_redirect_stater    r	   )r   r   adapterr!   r&   resultpaddingdataer%   kvpayloadtokentoken_sha256expected_hashr*   auth_date_validitylogins                      r   postzCallbackView.post"   s)   -''1A1D1DE;;??7+.! 
	\\%%n5FQ#f+/23G::f..v/?@ADdD)V4-? !788 .@ xx))FTZZ\#RTQGNN1a$8#RST##~~elln5<<>'..*GNN

)+ 	 -.	%<<>= DIIK)$;>P$P.!+/XF 
 227DA55gxH$We441  4 4jA 	.!)84	 	 $Ss%   A9I J	(J+J;JJN)r   r   r   r   rZ   r   r   r   r   r      s    9)5r   r   )r2   r7   rA   rE   r0   rJ   django.shortcutsr   django.utils.decoratorsr   django.viewsr   django.views.decorators.csrfr   allauth.socialaccount.adapterr   allauth.socialaccount.helpersr	   r
   *allauth.socialaccount.providers.base.viewsr   1allauth.socialaccount.providers.telegram.providerr   r   as_viewrY   r   callbackr   r   r   <module>re      s          # 4  4 5 E N& & 	 +J/-54 -5 0-5` !r   