55 lines
1.1 KiB
Python
55 lines
1.1 KiB
Python
#!/usr/bin/env python3
|
|
import sqlite3
|
|
from pathlib import Path
|
|
|
|
BASE = Path(__file__).resolve().parent
|
|
DB = BASE / 'data' / 'domainhunter.db'
|
|
DB.parent.mkdir(parents=True, exist_ok=True)
|
|
|
|
con = sqlite3.connect(DB)
|
|
cur = con.cursor()
|
|
cur.executescript('''
|
|
CREATE TABLE IF NOT EXISTS metadata (
|
|
key TEXT PRIMARY KEY,
|
|
value TEXT
|
|
);
|
|
|
|
CREATE TABLE IF NOT EXISTS domains (
|
|
id INTEGER PRIMARY KEY AUTOINCREMENT,
|
|
run_id TEXT,
|
|
scanned_at TEXT,
|
|
domain TEXT,
|
|
tld TEXT,
|
|
score INTEGER,
|
|
status TEXT,
|
|
keywords_json TEXT
|
|
);
|
|
CREATE INDEX IF NOT EXISTS idx_domains_run ON domains(run_id);
|
|
CREATE INDEX IF NOT EXISTS idx_domains_domain ON domains(domain);
|
|
|
|
CREATE TABLE IF NOT EXISTS registrar_prices (
|
|
id INTEGER PRIMARY KEY AUTOINCREMENT,
|
|
registrar TEXT,
|
|
url TEXT,
|
|
tld TEXT,
|
|
register_price REAL,
|
|
renew_price REAL,
|
|
updated_at TEXT,
|
|
UNIQUE(registrar, tld)
|
|
);
|
|
|
|
CREATE TABLE IF NOT EXISTS llm_scores (
|
|
id INTEGER PRIMARY KEY AUTOINCREMENT,
|
|
run_id TEXT,
|
|
domain TEXT,
|
|
llm_score REAL,
|
|
decision TEXT,
|
|
reason TEXT,
|
|
updated_at TEXT,
|
|
UNIQUE(run_id, domain)
|
|
);
|
|
''')
|
|
con.commit()
|
|
con.close()
|
|
print(f'OK init {DB}')
|