add scanning

This commit is contained in:
Garret Patti
2026-04-05 18:55:53 -04:00
parent c87a9b33bb
commit 8829188c58
11 changed files with 872 additions and 0 deletions

38
src/lib/app-settings.ts Normal file
View File

@@ -0,0 +1,38 @@
import { getDb } from './db'
interface ScanConfig {
schedule: string
enabled: boolean
lastScanAt: number | null
}
function getSetting(key: string): string | null {
const db = getDb()
const row = db
.prepare('SELECT value FROM app_settings WHERE key = ?')
.get(key) as { value: string } | undefined
return row?.value ?? null
}
function setSetting(key: string, value: string): void {
const db = getDb()
db.prepare('INSERT OR REPLACE INTO app_settings (key, value) VALUES (?, ?)').run(key, value)
}
export function getScanConfig(): ScanConfig {
const schedule = getSetting('scan_schedule') ?? '0 * * * *'
const enabled = getSetting('scan_enabled') !== 'false'
const lastRanRaw = getSetting('scan_last_ran')
const lastScanAt =
lastRanRaw && lastRanRaw.length > 0 ? parseInt(lastRanRaw, 10) : null
return { schedule, enabled, lastScanAt }
}
export function updateScanConfig(schedule: string, enabled: boolean): void {
setSetting('scan_schedule', schedule)
setSetting('scan_enabled', enabled ? 'true' : 'false')
}
export function setScanLastRan(ts: number): void {
setSetting('scan_last_ran', String(ts))
}