
    wgM
                         d dl m Z 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 d dlmZ d dlmZ d d	lmZ d d
lmZ  G d de          ZdS )    )datetime	timedelta)Any)settings)HttpRequest)now)get_raw_session_service)create_raw_logs)create_raw_log)get_request_service)BaseSessionMiddlewarec                   `    e Zd ZU dZg Zeeeef                  e	d<   e
j        ZddZdefdZdS )	RawSessionMiddlewared   logsreturnNc                     || _         d S )N)get_response)selfr   s     ?/var/www/html/cms/web/site_statistics/raw_session_middleware.py__init__zRawSessionMiddleware.__init__   s    (    requestc           	      `   |j         r|                     |          S |                                }d|v r|                     |          S t          t	          |                    }|                                }||z   }t          j                    t          d          z   }|j	        
                    | j                  }d }|rd|vr |                    |j        j                  }nA| j        
                    t!          |                    d          d                             }|s|                    |j        j                  }| j                                        j        }	|j        ri| j                            |          sOd|vrK|xj        |	z  c_        | j                            |          }|                     |j        d	|	 d
|            ||_        |                     |          }
|
                    | j        |j         d|j         |           | j                            tA          |j        ||tC                                           tE          | j                  | j#        k    r2tI          j%        | j                   | j        &                                 |
S )Nzget-user-info)request_serviceiB  )days/   )idzsubmit-capchau   Отказ от капчи, z, )expires)time)'searcherr   get_full_pathr	   r   get_hostr   utcnowr   COOKIESgetcookie_namecreate
user_agent	is_mobileraw_session_repositoryintsplituser_session_repositoryget_session_filtersreject_capchashow_capcha
url_parser	is_sourceban_rateupdatepenalty_loggerr   raw_session
set_cookier   appendr   r   lenlogs_array_lengthr
   delayclear)r   r   pathraw_session_servicesitepage_adressr    cookiesession_datareject_capcha_penaltyresponses              r   __call__zRawSessionMiddleware.__call__   s    	.$$W---$$&&d""$$W---5FYZaFbFbccc!!Tk/##iX&>&>&>>$$T%566  	Y#V++.55g6H6RSSLL6::c&,,sBSBSTUBV>W>W:XXL 	T.55g6H6RSSL $ < P P R R `# 	u?,,T22 ud7R7R%%)>>%%#:AA,OO##LO5sTi5s5smq5s5sttt*$$W--D,.T.T<?.T.T^efff	dQTQVQVWWWXXXty>>D222!$),,,IOOr   )r   N)__name__
__module____qualname__r<   r   listdictstrr   __annotations__r   RAW_SESSION_COOKIE_NAMEr(   r   r   rG    r   r   r   r      sp         !#D$tCH~
###2K) ) ) ). . . . . . .r   r   N)r   r   typingr   django.confr   django.httpr   django.utils.timezoner   (application.sessions.raw_session_servicer	   infrastructure.logging.tasksr
   5infrastructure.logging.user_activity.create_json_logsr   infrastructure.requests.servicer   +web.site_statistics.base_session_middlewarer   r   rP   r   r   <module>rZ      s    ( ( ( ( ( ( ( (                   # # # # # # % % % % % % L L L L L L 8 8 8 8 8 8 P P P P P P ? ? ? ? ? ? M M M M M M6 6 6 6 60 6 6 6 6 6r   