????

Your IP : 18.221.124.95


Current Path : /opt/cloudlinux/venv/lib/python3.11/site-packages/ssa/__pycache__/
Upload File :
Current File : //opt/cloudlinux/venv/lib/python3.11/site-packages/ssa/__pycache__/db.cpython-311.pyc

�

uy�e^
���ddlZddlZddlZddlmZmZddlmZmZmZm	Z	m
Z
mZmZm
Z
ddlmZddlmZddlmZdZdZe��ZGd	�d
e��Zd�Zd�Zd
�Zd�Zd�Zdd�Zejdefd���ZdS)�N)�datetime�	timedelta)�Column�Boolean�DateTime�Integer�String�
create_engine�event�func)�declarative_base)�	Inspector)�Sessionz/var/lve/ssa.db�c���eZdZdZdZeed���Zeedd���Z	eedd���Z
eed���Zeed���Zee
d���Zee
d���Zeed���Zeed���Zee
d���Zeed���ej���	��Zeed���ej��ej���
��ZdS)�
RequestResultay
    Describes processed request stored in database file.

    E.g.
    {
        "timestamp": "1650008727",
        "url": "http://mydomain.com/index.php",
        "duration": 162077,
        "hitting_limits": false,
        "throttled_time": 0,
        "io_throttled_time": 0,
        "wordpress": true
    }

    Note: created_at, updated_at is saved in local TZ format
    �
scrape_resultT)�primary_keyF)�index�nullable)r)�timezone)�server_default)�onupdaterN)�__name__�
__module__�__qualname__�__doc__�
__tablename__rr�idr	�domain�path�	timestamp�durationr�is_slow_request�hitting_limits�throttled_time�io_throttled_time�	wordpressrr�now�
created_at�
updated_at���=/opt/cloudlinux/venv/lib64/python3.11/site-packages/ssa/db.pyrr"sM�������� $�M�	���T�	*�	*�	*�B�
�V�F�$��
7�
7�
7�F��6�&��u�5�5�5�D���w��/�/�/�I��v�g��.�.�.�H��f�W�u�5�5�5�O��V�G�e�4�4�4�N��V�G�e�4�4�4�N���w��7�7�7����w��/�/�/�I�����$�/�/�/����
�
�K�K�K�J�����$�/�/�/�(�$�(�*�*�U]�UY�U]�U_�U_�`�`�`�J�J�Jr-rc�B�tj��tt���z
}t	|��5}|�t���tj|k���	��ddd��dS#1swxYwYdS)zD
    Removes outdated records from database, saving disk space.
    )�daysN)
r�todayr�RETENTION_TIME_DAYS�
session_scope�queryr�filterr*�delete)�engine�
n_days_ago�sessions   r.�cleanup_old_datar:Gs�����!�!�I�3F�$G�$G�$G�G�J�	�v�	�	��'��
�
�m�$�$�
�V�M�,�z�9�
:�
:�
�V�X�X�X���������������������s�AB�B�Bc�f�t|��s!tj�|��dSdS�N)�
is_db_present�Base�metadata�
create_all)r7s r.�create_db_if_not_existrARs8���� � �)��
� � ��(�(�(�(�(�)�)r-c���tj�t��sdSt	j|��}d�|���D��}t|��dkS)NFc��g|]}|��Sr,r,)�.0�tables  r.�
<listcomp>z!is_db_present.<locals>.<listcomp>[s��
G�
G�
G��e�
G�
G�
Gr-r)�osr!�isfile�SSA_DBr�from_engine�get_table_names�len)r7�database_inspection�tabless   r.r=r=Ws^��
�7�>�>�&�!�!���u�#�/��7�7��
G�
G�!4�!D�!D�!F�!F�
G�
G�
G�F��v�;�;��?�r-c�0�|�d��dS)NzPRAGMA journal_mode = WAL)�execute)�	dbapi_con�
con_records  r.�setup_wal_moderS_s��
���1�2�2�2�2�2r-c���dt���|r��d���fd�}td|d���}tj|dt��t|��|S)Nzfile:z?mode=roc�0��tj�d���S)NT)�uri)�sqlite3�connect)�connection_strings�r.�<lambda>z!_setup_database.<locals>.<lambda>gs���g�o�&7�T�B�B�B�r-zsqlite:////F)�creator�echorX)rIr
r�listenrSrA)�readonlyr[r7rYs   @r.�_setup_databaser_csz���(��(�(���;�0�:�:�:��B�B�B�B�G�
��w�U����F�
�L���N�3�3�3��6�"�"�"��Mr-Fc� �t|��Sr<)r_)r^s r.�setup_databaseraps���8�$�$�$r-�returnc#��K�t|���}	|V�|���n#|����xYw	|���dS#|���wxYw)zF
    Provide a transactional scope around a series of operations.
    )�bindN)r�commit�rollback�close)r7r9s  r.r3r3ts�����
�6�"�"�"�G���
�
�
����������������
����	�
	�
�
��������
�
�������s�-�A�A�A�A4)F) rG�
contextlibrWrr�
sqlalchemyrrrrr	r
rr�sqlalchemy.ext.declarativer
�sqlalchemy.engine.reflectionr�sqlalchemy.ormrrIr2r>rr:rAr=rSr_ra�contextmanagerr3r,r-r.�<module>rns���
�	�	�	���������(�(�(�(�(�(�(�(���������������������8�7�7�7�7�7�2�2�2�2�2�2�"�"�"�"�"�"�	���������"a�"a�"a�"a�"a�D�"a�"a�"a�J���)�)�)�
���3�3�3�
�
�
�%�%�%�%����W��������r-