
    f                         d 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 Z ed	      d
        Z G d d      Zy)z
Debug Toolbar middleware
    N)	lru_cache)settings)import_string)DebugToolbar)clear_stack_trace_cachesis_processable_html_responsec                 d   t         j                  sy| j                  j                  d      t         j                  v ry	 dj                  t        j                  d      j                  d      dd       dz   }| j                  j                  d      |k(  ry	 y# t        j                  $ r Y yw xY w)	zT
    Default function to determine whether to show the toolbar on a given page.
    FREMOTE_ADDRT.zhost.docker.internalNz.1)
r   DEBUGMETAgetINTERNAL_IPSjoinsocketgethostbynamersplitgaierror)request	docker_ips     S/var/www/cs2snipe.com/venv/lib/python3.12/site-packages/debug_toolbar/middleware.pyshow_toolbarr      s     >> ||&(*?*?? HHV))*@AHHMcrRS 	
 <<M*i7 8  ??  s   AB B/.B/)maxsizec                  j    t        j                         d   } t        | t              rt	        |       S | S )NSHOW_TOOLBAR_CALLBACK)dt_settings
get_config
isinstancestrr   )func_or_paths    r   get_show_toolbarr"   0   s3     ))+,CDL,$\**    c                   ,    e Zd ZdZd Zd Zed        Zy)DebugToolbarMiddlewarezm
    Middleware to set up Debug Toolbar on incoming request and render toolbar
    on outgoing response.
    c                     || _         y )N)get_response)selfr'   s     r   __init__zDebugToolbarMiddleware.__init__A   s
    (r#   c                    t               } ||      rt        j                  |      r| j                  |      S t        || j                        }|j                  D ]  }|j                           	 |j                  |      }t                t        |j                        D ]  }|j                           	 t        |j                        D ]&  }|j                  ||       |j                  ||       ( |j                         }| j                  ||j                        j                         D ]  \  }}||j                  |<    t!        |      s|S |j"                  j%                  |j&                        }	t)        j*                         d   }
t-        j.                  |
      }t-        j0                  ||	t,        j2                        }t5        |      dkD  r?|dxx   |z  cc<   |
j7                  |      |_        d|v rt5        |j"                        |d<   |S # t                t        |j                        D ]  }|j                           w xY w)NINSERT_BEFORE)flags   zContent-Length)r"   r   is_toolbar_requestr'   enabled_panelsenable_instrumentationprocess_requestr   reverseddisable_instrumentationgenerate_statsgenerate_server_timingrender_toolbarget_headersitemsheadersr   contentdecodecharsetr   r   reescapesplit
IGNORECASElenr   )r(   r   r   toolbarpanelresponserenderedheadervaluer;   insert_beforepatternbitss                r   __call__zDebugToolbarMiddleware.__call__D   s   ')G$(G(G(P$$W--w(9(9: ++ 	+E((*	+	0..w7H$& "'"8"89 0--/0
 g445 	<E  (3(((;	< ))+!--gw7M7MNTTV 	-MFE',HV$	- ,H5O ""))(*:*:;#..0A))M*xx>t9q=H H,11$7H8+-01A1A-B)*C %& "'"8"89 0--/0s   1H 6Ic                     i }|D ]C  }|j                  |       j                         D ]  \  }}||v r||xx   d| z  cc<   |||<   ! E |S )Nz, )r8   r9   )r   panelsr:   rD   rG   rH   s         r   r8   z"DebugToolbarMiddleware.get_headersv   si     	,E!&!2!27!;!A!A!C ,W$FOE7|3O&+GFO	,	, r#   N)__name__
__module____qualname____doc__r)   rL   staticmethodr8    r#   r   r%   r%   ;   s&    
)0d  r#   r%   )rR   r>   r   	functoolsr   django.confr   django.utils.module_loadingr   debug_toolbarr   debug_toolbar.toolbarr   debug_toolbar.utilsr   r   r   r"   r%   rT   r#   r   <module>r[      sN    
     5 1 . V> 4 D Dr#   