Spaces:
Running
Running
| from fastapi import APIRouter, HTTPException | |
| from pydantic import BaseModel | |
| import sqlite3 | |
| import os | |
| router = APIRouter() | |
| def get_db_path(): | |
| if "JARVIS_APP_DATA_DIR" in os.environ: | |
| return os.path.join(os.environ["JARVIS_APP_DATA_DIR"], "memory.db") | |
| project_root = os.path.dirname(os.path.dirname(os.path.dirname(os.path.abspath(__file__)))) | |
| return os.path.join(project_root, "memory.db") | |
| class SitePayload(BaseModel): | |
| site: str | |
| async def get_trusted_sites(): | |
| try: | |
| conn = sqlite3.connect(get_db_path()) | |
| c = conn.cursor() | |
| c.execute("CREATE TABLE IF NOT EXISTS trusted_otp_sites (site TEXT PRIMARY KEY)") | |
| c.execute("SELECT site FROM trusted_otp_sites") | |
| rows = c.fetchall() | |
| conn.close() | |
| return {"sites": [r[0] for r in rows]} | |
| except Exception as e: | |
| raise HTTPException(status_code=500, detail=str(e)) | |
| async def add_trusted_site(payload: SitePayload): | |
| try: | |
| conn = sqlite3.connect(get_db_path()) | |
| c = conn.cursor() | |
| c.execute("CREATE TABLE IF NOT EXISTS trusted_otp_sites (site TEXT PRIMARY KEY)") | |
| c.execute("INSERT OR IGNORE INTO trusted_otp_sites (site) VALUES (?)", (payload.site,)) | |
| conn.commit() | |
| conn.close() | |
| return {"status": "ok"} | |
| except Exception as e: | |
| raise HTTPException(status_code=500, detail=str(e)) | |
| async def remove_trusted_site(site: str): | |
| try: | |
| conn = sqlite3.connect(get_db_path()) | |
| c = conn.cursor() | |
| c.execute("CREATE TABLE IF NOT EXISTS trusted_otp_sites (site TEXT PRIMARY KEY)") | |
| c.execute("DELETE FROM trusted_otp_sites WHERE site=?", (site,)) | |
| conn.commit() | |
| conn.close() | |
| return {"status": "ok"} | |
| except Exception as e: | |
| raise HTTPException(status_code=500, detail=str(e)) | |