Hacked By AnonymousFox

Current Path : /opt/cloudlinux/venv/lib64/python3.11/site-packages/raven/contrib/django/__pycache__/
Upload File :
Current File : //opt/cloudlinux/venv/lib64/python3.11/site-packages/raven/contrib/django/__pycache__/client.cpython-311.pyc

�

�܋f4)���dZddlmZddlZddlZddlmZddlm	Z	ddl
mZddlm
Z
ddlmZdd	lmZ	dd
lmZn#e$r	ddlmZYnwxYwddlmZdd
lmZmZddlmZddlmZm Z m!Z!ddl"m#Z#ddl$m%Z%m&Z&m'Z'ddl(m)Z)ddl*m+Z+dZ,edkrd�Z-nd�Z-Gd�de.��Z/d�Z0d�Z1e)d���Z2Gd�de��Z3dS)z�
raven.contrib.django.client
~~~~~~~~~~~~~~~~~~~~~~~~~~~~

:copyright: (c) 2010-2012 by the Sentry Team, see AUTHORS for more details.
:license: BSD, see LICENSE for more details.
�)�absolute_importN)�VERSION)�settings)�SuspiciousOperation)�HttpRequest)�TemplateSyntaxError)�MultiValueDict)�Origin)�LoaderOrigin)�Client)�get_data_from_template�get_host)�SentryMiddleware)�string_types�binary_type�	iterlists)�
RouteResolver)�get_headers�get_environ�
get_client_ip)�once)�breadcrumbs)�DjangoClient)��
c�*�|���S�N��is_authenticated��request_users �l/builddir/build/BUILD/cloudlinux-venv-1.0.6/venv/lib/python3.11/site-packages/raven/contrib/django/client.pyrr*s���,�,�.�.�.�c��|jSrrr s r"rr-s���,�,r#c��eZdZd�Zd�ZdS)�_FormatConverterc�"�||_g|_dSr)�
param_mapping�params)�selfr(s  r"�__init__z_FormatConverter.__init__3s��*�������r#c�j�|j�|j�|����dS)Nz%s)r)�appendr(�get)r*�vals  r"�__getitem__z_FormatConverter.__getitem__7s.������4�-�1�1�#�6�6�7�7�7��tr#N)�__name__�
__module__�__qualname__r+r0�r#r"r&r&1s2�������������r#r&c��g}t|t��r t|��}|r
||z}|j}nd}|pdD]�}|�|�d���t|t
��rxt|t��r|�dd��}t|��dkr
|dd�dz}|�d|�	dd	��z����|�t|������||fS)
Nr4�NULLzutf-8�replace�u…z'%s'�'z'')�
isinstance�dictr&r)r-rr�decode�lenr7�repr)�sqlr)�rv�conv�params     r"�
format_sqlrC<s��	�B��&�$������'�'���	���*�C��[�F�F��F���2�
#�
#���=��I�I�f�����
��|�
,�
,�	#��%��-�-�
9����W�i�8�8���5�z�z�C����d�s�d��f�,���I�I�f�u�}�}�S�$�7�7�7�8�8�8�8��I�I�d�5�k�k�"�"�"�"���7�Nr#c�@�����fd�}tj|���dS)Nc���t����\}}|r$	|t|��z}n#t$rYnwxYw|�|dd���dS)N�query)�message�category)rC�tuple�	TypeError�update)�data�real_sql�real_paramsr)r?s   ��r"�	processorzrecord_sql.<locals>.processorWs���� *�3�� 7� 7���+��	�
�#�e�K�&8�&8�8�����
�
�
���
����	
�����
�
�	�	�	�	�	s�+�
8�8)rO)r�record)�vendor�alias�start�durationr?r)rOs    `` r"�
record_sqlrUVs>�������������+�+�+�+�+�+r#c������	ddlm}n#t$r	ddlm}YnwxYw	|j�|j�n#t$rYdSwxYwd��d�fd�	}��fd�}||_||_tjd��dS)	z9If installed this causes Django's queries to be captured.r)�
CursorWrapperNc	�d�tj��|z
}|D]}t||||||���dSr)�timerU)rQrRrSr?�
param_listrTr)s       r"�record_many_sqlz)install_sql_hook.<locals>.record_many_sqlwsJ���9�;�;��&�� �	D�	D�F��v�u�e�X�s�F�C�C�C�C�	D�	Dr#c
�h��tj��}	�|||��t|jjt	|jdd��|tj��|z
||��S#t|jjt	|jdd��|tj��|z
||��wxYw�NrR)rYrU�dbrQ�getattr)r*r?r)rS�real_executes    �r"�executez!install_sql_hook.<locals>.execute|s�����	����	@��<��c�6�2�2��t�w�~�w�t�w���'F�'F��d�i�k�k�E�1�3��
@�
@�
@�
@��J�t�w�~�w�t�w���'F�'F��d�i�k�k�E�1�3��
@�
@�
@�
@���s�A)�)AB1c
���tj��}	�|||���|jjt|jdd��|||��S#�|jjt|jdd��|||��wxYwr])rYr^rQr_)r*r?rZrS�real_executemanyr[s    ��r"�executemanyz%install_sql_hook.<locals>.executemany�s�����	����	4�#�#�D�#�z�:�:��O�D�G�N�G�D�G�W�d�,K�,K�!�3�
�
4�
4�
4�
4��O�O�D�G�N�G�D�G�W�d�,K�,K�!�3�
�
4�
4�
4�
4���s�A�/A?zdjango.db.backendsr)	�django.db.backends.utilsrW�ImportError�django.db.backends.utilrard�AttributeErrorr�
ignore_logger)rWrardr`rcr[s   @@@r"�install_sql_hookrjgs
�����:�:�:�:�:�:�:�:���:�:�:�9�9�9�9�9�9�9�9�:�����$�,��(�4��������	�������
D�D�D�
@�@�@�@�@�@�4�4�4�4�4�4�$�M�� +�M����2�3�3�3�3�3s����2�
A�Ac���eZdZejd��Ze��Zd�Zd�Z	d�Z
d�Zd�Z�fd�Z
d�fd	�	Zd
�Z�xZS)rzsentry.errors.client.djangoc��|�dd��}tj|g|�Ri|��|r|���dSdS)NrjT)�poprr+rj)r*�args�kwargsrjs    r"r+zDjangoClient.__init__�sa��!�:�:�&8�$�?�?�����.�t�.�.�.�v�.�.�.��	$��!�!�#�#�#�#�#�	$�	$r#c�"�t��dSr)rj)r*s r"rjzDjangoClient.install_sql_hook�s�������r#c�r�dt|j��i}t|dd��}|�|S	t|��}|s|S|j|d<t|d��r
|j|d<t|d��r|���|d<nt|d��r
|j|d<n#t$rYnwxYw|S)N�
ip_address�user�id�email�get_username�username)
r�METAr_r�pk�hasattrrurvrw�	Exception)r*�request�	user_infors�
authenticateds     r"�
get_user_infozDjangoClient.get_user_info�s���
�-���5�5�
�	��w���-�-���<���	�,�T�2�2�M� �
!� � �"�g�I�d�O��t�W�%�%�
0�%)�Z�	�'�"��t�^�,�,�
6�(,�(9�(9�(;�(;�	�*�%�%���z�*�*�
6�(,�
�	�*�%����	�	�	�
�D�		�����s�B'�A&B'�'
B4�3B4c�6�i}|�||��|Sr)�update_data_from_request)r*r|r@s   r"�get_data_from_requestz"DjangoClient.get_data_from_request�s"��
���%�%�g�r�2�2�2��	r#c�T�|�d���|�|��|d<	|���}nF#t$r9|���rd}nd}t|��}|�d|�|j��}YnwxYw|jdvr�	|j}n�#t$rt	|j
}nh#t$r[	|jpd}t|t��r&td�t|��D����}n#t$rd}YnwxYwYnwxYwYnwxYwd}|j}|�d|j||j�d	��|t|j��tt'|����tt)|����d
�i��dS)Nrs�https�httpz://)�GET�HEADz
<unavailable>c3�ZK�|]&\}}|t|��dkr|dn|fV��'dS)rrN)r=)�.0�k�vs   r"�	<genexpr>z8DjangoClient.update_data_from_request.<locals>.<genexpr>�sU����(=�(=�$(�A�q�"#�C��F�F�a�K�K�A�a�D�D�Q� ?�(=�(=�(=�(=�(=�(=r#r|�QUERY_STRING)�method�url�query_stringrL�cookies�headers�env)r.r�build_absolute_urir�	is_securer�pathr��bodyr{�
raw_post_data�POSTr:r	r;rrxrK�COOKIESrr)r*r|�result�uri�scheme�hostrL�environs        r"r�z%DjangoClient.update_data_from_request�s���:�:�f���%�!�/�/��8�8�F�6�N�
	=��,�,�.�.�C�C��"�	=�	=�	=�� � �"�"�
 � ������G�$�$�D�!'�����w�|�|�<�C�C�C�	=�����>��0�0�
=��|�����

=�

=�

=�=�"�0�D�D�� �
=�
=�
=�=�&�|�>���&�d�N�;�;�=�#'�(=�(=�,5�d�O�O�(=�(=�(=�$=�$=�D���	%�/�/�/�.����/������	
=������

=�����D��,���
�
��!�.�� '�� 0� 0�� @� @�����0�0���G� 4� 4�5�5��K��0�0�1�1���

�
	�
	�
	�
	�
	sl�A�AB�B�B�
D�'B/�.D�/
D�:	C?�<D�?D�D�
D�D�D�D�D�Dc�,��tt|��j|i|��}|�|��D]4}|�d��}|s�|�d��rd|d<�5|js�dtjvr�	ddl	m
}|j���}|j
p|j}|d�d	|��nH#t $r;	|d�d	tj��n#t$$rYnwxYwYnwxYw|S)
N�modulezdjango.F�in_appzdjango.contrib.sitesr)�Site�tags�site)�superr�	build_msg�_iter_framesr.�
startswithr�r�INSTALLED_APPS�django.contrib.sites.modelsr��objects�get_current�name�domain�
setdefaultr{�SITE_IDrh)
r*rnrorL�framer�r�r��	site_name�	__class__s
         �r"r�zDjangoClient.build_msg�sS���2�u�\�4�(�(�2�D�C�F�C�C���&�&�t�,�,�	(�	(�E��Y�Y�x�(�(�F��
��� � ��+�+�
(�"'��h����y�	�3�x�7N�N�N�
�<�<�<�<�<�<��|�/�/�1�1�� �I�4���	��V��'�'��	�:�:�:�:���
�
�
����L�+�+�F�H�4D�E�E�E�E��%�����D�������	
�����s7�A	C�
D�&C>�=D�>
D�D�
D�D�DNc	���|�d���ix|d<}n|d}|�ttjdd��}t	|t
��}|r|�||��|�d��r�|dd}t|d��spt	|t��rKt	t|dd��ttf��r t	|jdt��st|d��rpt|dt|dd����}t|dd��}|�|j
�d	��|�t!||����t#t$|��j|fi|��}	|r*|	r(|�d
|jj��|	d�|_|	S)NrLr|�exc_infor�django_template_source�sourcer�template_debugz,Unable to get template source from exception�project)�
project_idrt)r.r_r�threadr:rr�rzrrI�listr�r
�logger�inforKr
r�r�capture�remoter��sentry)r*�
event_typer|rorL�is_http_request�	exc_valuer��debugr�r�s          �r"r�zDjangoClient.captures�����:�:�f���%�$&�&�F�6�N�T�T��&�>�D��?��.�5�y�$�G�G�G�$�W�k�:�:���	9��)�)�'�4�8�8�8��:�:�j�!�!�	C��z�*�1�-�I��y�":�;�;�
C��I�':�;�;�
C���	�8�T� B� B�!�4�=�*�*�
C� �	� 0�� 3�V�<�<�	
C�
�y�"2�3�3�
C�!��,D�!(��H�d�!C�!C�E�E���	�+;�T�B�B���>��K�$�$�%S�T�T�T����2�6�5�A�A�B�B�B�2��|�T�*�*�2�:�H�H��H�H���	�v�	�#�h�h�y�$�+�2E�F�F����G�N�
�
r#c�@�|j�|j��Sr)�resolver�resolver�)r*r|s  r"�get_transaction_from_requestz)DjangoClient.get_transaction_from_request:s���}�$�$�W�\�2�2�2r#r)r1r2r3�logging�	getLoggerr�rr�r+rjrr�r�r�r�r��
__classcell__)r�s@r"rr�s��������
�W�
�<�
=�
=�F��}���H�$�$�$�������<���
0�0�0�d�����6*�*�*�*�*�*�X3�3�3�3�3�3�3r#r)4�__doc__�
__future__rrYr��djangor�DJANGO_VERSION�django.confr�django.core.exceptionsr�django.httpr�django.templater�django.utils.datastructuresr	�django.template.baser
rf�django.template.loaderr�
raven.baser�raven.contrib.django.utilsr
r�raven.contrib.django.middlewarer�raven.utils.compatrrr�raven.contrib.django.resolverr�raven.utils.wsgirrr�raven.utilsr�ravenr�__all__r�objectr&rCrUrjrr4r#r"�<module>r�su����'�&�&�&�&�&���������,�,�,�,�,�,� � � � � � �6�6�6�6�6�6�#�#�#�#�#�#�/�/�/�/�/�/�6�6�6�6�6�6�>�+�+�+�+�+�+�+���>�>�>�=�=�=�=�=�=�=�=�>����������G�G�G�G�G�G�G�G�<�<�<�<�<�<�C�C�C�C�C�C�C�C�C�C�7�7�7�7�7�7�D�D�D�D�D�D�D�D�D�D�������������
���G���/�/�/�/�-�-�-������v�������4,�,�,�"�&4�&4���&4�Rj3�j3�j3�j3�j3�6�j3�j3�j3�j3�j3s�=�A�
A

Hacked By AnonymousFox1.0, Coded By AnonymousFox