He ddlZddlZddlZddlmZmZddlmZmZmZm Z m Z m Z m Z ddl mZddlmZddlmZddlmZmZeZGdd eZGd d eZd Zd ZdZdZddZejdefdZdS)N)datetime timedelta)ColumnBooleanDateTimeIntegerString create_engineevent)declarative_base) Inspector)Session)WMT_DBRETENTION_TIME_DAYSceZdZdZdZeedZeeZ ee ddZ ee Z eedZeedZdS) ScrapeResultz2 created_date is saved in local TZ format scrape_resultT primary_keyc(tjSNrnow;/opt/cloudlinux/venv/lib/python3.11/site-packages/wmt/db.pyzScrapeResult.)s 8<>>rdefaultindex)nullableN)__name__ __module__ __qualname____doc__ __tablename__rridr websiter create_dater is_finished response_coderesponse_time_msrrrrr!s$M T * * *BfVnnG&+A+ANNNK&//KF7T222Mvg555rrceZdZdZdZeedZeedZ ee ddZ ee d Z d S) DomainAlertsz0 alert_time is saved in local TZ format domain_alertsTr)r c(tjSrrrrrrzDomainAlerts.9s (,..rrF)rN)r"r#r$r%r&rrr'r r(r alert_timer is_resolvedrrrr.r.1su$M T * * *BfV4(((G*@*@MMMJ&%000KKKrr.ctjttz }t |5}|t t j|k |ttj |k ddddS#1swxYwYdS)N)days) rtodayrr session_scopequeryrfilterr)deleter.r1)engine n_days_agosessions rcleanup_old_datar=>s!!I3F$G$G$GGJ v  ' l## VL,z9 : : VXXX l## VL+j8 9 9 VXXX sBC!!C%(C%cft|s!tj|dSdSr) is_db_presentBasemetadata create_all)r:s rcreate_db_if_not_existrCIs8  )   ((((())rctjtsdSt j|}d|D}t|dkS)NFcg|]}|Srr).0tables r z!is_db_present..Rs G G Ge G G Grr)ospathisfilerr from_engineget_table_nameslen)r:database_inspectiontabless rr?r?Ns^ 7>>& ! !u#/77 G G!4!D!D!F!F G G GF v;;?rc0|ddS)NzPRAGMA journal_mode = WAL)execute) dbapi_con con_records rsetup_wal_moderUVs 122222rFcdt|rdfd}td|d}tj|dtt ||S)Nzfile:z?mode=roc0tjdS)NT)uri)sqlite3connect)connection_stringsrrz setup_database..^sgo&7TBBBrz sqlite:////F)creatorechorZ)rr r listenrUrC)readonlyr\r:r[s @rsetup_databaser`Zsz(((;0:::BBBBG wUF LN3336""" Mrreturnc#Kt|} |V|n#|xYw |dS#|wxYw)zrns ((((((((877777222222""""""88888888 6 6 6 6 64 6 6 6 1 1 1 1 14 1 1 1))) 333      W      r