add scanning
This commit is contained in:
38
src/lib/app-settings.ts
Normal file
38
src/lib/app-settings.ts
Normal 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))
|
||||
}
|
||||
Reference in New Issue
Block a user