veg`dZddlZddlmZddlmZmZmZmZddl Z ddl m Z m Z m Z m Z mZmZddlmZmZeGddZd eefd Zd Zd eeeeffd ZdS) zF Represents storage where ssa data is collected, stored and extracted N) dataclass)ListIteratorTupleDict)funccastcaseliteral_columndistincttext) session_scope RequestResultcDeZdZUeed<eeed<eed<eed<dS) DomainData domain_namedomain_total_reqsis_a_wordpress_domain urls_numberN)__name__ __module__ __qualname__str__annotations__rintboolJ/opt/cloudlinux/venv/lib64/python3.11/site-packages/ssa/modules/storage.pyrrsFCy   rrreturnc #zKt|5}|tjt jdtjt jtjt j tj t j ttj tjt jdtjtjt jdtj}t!j|d}|D]^\}}t%|}d}dgdz}|D]*\} } } } } | |t'| <t|| }+t)||| |V_ ddddS#1swxYwYdS)z7 Iterates data from database domain-by-domain. %Hc|dSNrritems rz#iter_domains_data../s VZ[\V]r)keyr)rrrrN)rqueryrdomainrstrftime created_atCountidmax wordpresscountr pathgroup_byorder_by itertoolsgroupbytuplerr)enginedbresults_by_hourresults_by_hour_groupedrgroupdomain_results_by_hourrrequests_number_by_hour_hour requests_num is_wordpressurlss riter_domains_datarEs v  !"((  M$ 8 9 9 J}' ( ( H], - - Jx 233 4 4   (  M$ 8 9 9   (  M$ 8 9 9   #,"3OI]I]"^"^"^"9   K%*5\\ "K()cBh #=S 5 594|T5A'D 2!+t44 '"9&2'      #!!!!!!!!!!!!!!!!!!sFF00F47F4c #Kt|5}d|D}|tjt jdtjt jttj tj  dt j tj dt jttjtj  dtj|kt%tj|jddijtjt jdtjtjt jdtj}d }d gd zd gd zd gd z} }}|D]q\} } } } }|r/|| kr)|t3|||| fVd gd zd gd zd gd z} }}| |t5| <| |t5| <|| t5| <| }r| t3| ||| fVd d d d S#1swxYwYd S) z6 Iterates urls data from database url-by-url. c:g|]}|ddS):z\:)replace).0r3s r z"iter_urls_data..Hs&LLL$T\\#u55LLLrr"url_throttled_reqsurl_total_reqs url_slow_reqs literal_bindsT)compile_kwargsNrr))r3rLrMrN)rr*rr3rr,r-Sumr hitting_limits sqlalchemyIntegerlabelr.r/is_slow_requestfilterr+r in_ expressioncompilestringr4r5dictr)r9r all_pathsr:all_paths_escaped urls_data previous_pathrLrMrNr3rAurl_throttled_req url_total_req url_slow_reqs riter_urls_datardCs v  2 "LL)LLLHH   M$ 8 9 9 HT,j.@  u)** J   e$%% HT-z/ACC  eO$$    &  K /  & #''(9::EMM^mos]tMuu| } }  (   dM4L M M  (   dM4L M M  % , C"HqcBhb-:NKT ! ! FD$)=, 1$!6!6#T&'9#1"/ &&&C"HqcBhb5BN"-> s4yy )(5N3t99 %'3M#d)) $ MMD1)'        [2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 sJJ<<KKc#Kt|5}|tjtjtj|ktj}tj t|d}|D]\}}|d|DfV ddddS#1swxYwYdS)zA Get information about durations of requests url-by-url. c|dSr$rr%s rr'z#get_url_durations..s $q'rcg|]\}}|Srr)rJr@durations rrKz%get_url_durations..s:::[Q:::rN) rr*rr3rhrWr+r5r6r7list)r9rr:r_durations_by_pathr(r=s rget_url_durationsrk|s) v   ;"HH    "   &  K /  (    &- OO1133+ ; ;JC::E:::: : : : : ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ;sB$CC C)__doc__r6 dataclassesrtypingrrrrrSrr r r r r ssa.dbrrrrErdrrrkrrrrps>!!!!!!............GGGGGGGGGGGGGGGG////////  %*!5%%%%N6 6 6 r;d3c ?.C;;;;;;r