jdZddlZddlmZddlmZmZmZmZddl Z ddl m Z m Z m Z ddl mZmZeGddZd eefd Zd Zd eeeeffd ZdS) zF Represents storage where ssa data is collected, stored and extracted N) dataclass)ListIteratorTupleDict)funccastdistinct) 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)r queryr domainrstrftime 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_datarBs 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}|tjt jdtjt jttj tj  dt j tj dt jttjtj  dtj|ktj|tjt jdtjtjt jdtj}d}dgdzdgdzdgdz}}}|D]q\} } } } } |r/|| kr)|t+||||fVdgdzdgdzdgdz}}}| |t-| <| |t-| <| |t-| <| }r| t+| |||fVddddS#1swxYwYdS) z6 Iterates urls data from database url-by-url. rurl_throttled_reqsurl_total_reqs url_slow_reqsNrr&)r0rDrErF)r r'r r0rr)r*Sumr hitting_limits sqlalchemyIntegerlabelr+r,is_slow_requestfilterr(in_r1r2dictr)r6r all_pathsr7 urls_data previous_pathrDrErFr0r>url_throttled_req url_total_req url_slow_reqs riter_urls_datarVCs v  1 "HH   M$ 8 9 9 HT,j.@  u)** J   e$%% HT-z/ACC  eO$$    &  K /  &   " "9 - -  (   dM4L M M  (   dM4L M M  % , C"HqcBhb-:NKT ! ! FD$)=, 1$!6!6#T&'9#1"/ &&&C"HqcBhb5BN"-> s4yy )(5N3t99 %'3M#d)) $ MMD1)'        Y1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 sI$JJ Jc#Kt|5}|tjtjtj|ktj}tj |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 DGrcg|]\}}|Srr).0r=durations r z%get_url_durations..s:::[Q:::rN) r r'r r0r[rMr(r2r3r4)r6rr7rQdurations_by_pathr%r:s rget_url_durationsr^{s# v  ;"HH    "   &  K /  (    &- ++--+ ; ;JC::E:::: : : : : ;;;;;;;;;;;;;;;;;;;sBB77B;>B;)__doc__r3 dataclassesrtypingrrrrrIrr r ssa.dbr r rrBrVrrr^rrrrcs,!!!!!!............++++++++++////////  %*!5%%%%N5 5 5 p;d3c ?.C;;;;;;r