HEX
Server: Apache
System: Linux sg2plmcpnl492417.prod.sin2.secureserver.net 4.18.0-553.58.1.lve.el8.x86_64 #1 SMP Fri Jul 4 12:07:06 UTC 2025 x86_64
User: nyiet8349bzl (9207396)
PHP: 8.1.34
Disabled: NONE
Upload Files
File: //opt/alt/python37/lib/python3.7/site-packages/ssa/modules/__pycache__/storage.cpython-37.pyc
B

$�c��@s�dZddlZddlmZddlmZmZmZmZddl	Z	ddl	m
Z
mZmZm
Z
mZddlmZmZeGdd�d��Zeed	�d
d�Zdd
�Zeeeefd	�dd�ZdS)zF
Represents storage where ssa data is collected, stored and extracted
�N)�	dataclass)�List�Iterator�Tuple�Dict)�func�cast�case�literal_column�distinct)�
session_scope�
RequestResultc@s2eZdZUeed<eeed<eed<eed<dS)�
DomainData�domain_name�domain_total_reqs�is_a_wordpress_domain�urls_numberN)�__name__�
__module__�__qualname__�str�__annotations__r�int�bool�rr�D/opt/alt/python37/lib/python3.7/site-packages/ssa/modules/storage.pyrs
r)�returnccs�t|���}|�tjt�dtj�t�tj�t�	tj
�t�ttj
����tjt�dtj���tjt�dtj��}tj|dd�d�}xf|D]^\}}t|�}d}dgd}x,|D]$\}	}
}}}
||t|
�<t	||
�}q�Wt||||d�Vq�WWdQRXdS)	z7
    Iterates data from database domain-by-domain.
    z%HcSs|dS)Nrr)�itemrrr�<lambda>/�z#iter_domains_data.<locals>.<lambda>)�keyr�)rrrrN)r�queryr
�domainr�strftime�
created_at�Count�id�max�	wordpress�countr�path�group_by�order_by�	itertools�groupby�tuplerr)�engine�dbZresults_by_hourZresults_by_hour_groupedr�groupZdomain_results_by_hourrZrequests_number_by_hour�_�hourZrequests_numZis_wordpressZurlsrrr�iter_domains_datas0



r6ccsxt|���d}|�tjt�dtj�t�ttj	t
j���d�t�
tj��d�t�ttjt
j���d���tj|k��tj�|���tjt�dtj���tjt�dtj��}d}dgddgddgd}}}x�|D]~\}	}
}}}
|�r(||	k�r(|t||||d�fVdgddgddgd}}}||t|
�<||t|
�<|
|t|
�<|	}q�W|	t|	|||d�fVWdQRXdS)	z6
    Iterates urls data from database url-by-url.
    z%H�url_throttled_reqs�url_total_reqs�
url_slow_reqsNrr!)r+r7r8r9)rr"r
r+rr$r%ZSumr�hitting_limits�
sqlalchemy�Integer�labelr&r'�is_slow_request�filterr#�in_r,r-�dictr)r1rZ	all_pathsr2�	urls_dataZ
previous_pathr7r8r9r+r5Zurl_throttled_reqZ
url_total_reqZurl_slow_reqrrr�iter_urls_dataDsH""rCc	csvt|��d}|�tjtj��tj|k��tj�}t�	t
|�dd��}x$|D]\}}|dd�|D�fVqHWWdQRXdS)zA
    Get information about durations of requests url-by-url.
    cSs|dS)Nrr)rrrrr�rz#get_url_durations.<locals>.<lambda>cSsg|]\}}|�qSrr)�.0r4�durationrrr�
<listcomp>�sz%get_url_durations.<locals>.<listcomp>N)rr"r
r+rEr?r#r-r.r/�list)r1rr2rBZdurations_by_pathr r3rrr�get_url_durations|s
rH)�__doc__r.�dataclassesr�typingrrrrr;rrr	r
r�ssa.dbrr
rr6rCrrrHrrrr�<module>	s(8