feat: implement RSS subscriptions, downloader routing and local media checks
This commit is contained in:
@@ -0,0 +1,34 @@
|
||||
CREATE TABLE subscriptions (
|
||||
id TEXT PRIMARY KEY,
|
||||
spec TEXT NOT NULL,
|
||||
deleted INTEGER NOT NULL DEFAULT 0,
|
||||
last_checked_at INTEGER,
|
||||
last_error TEXT
|
||||
);
|
||||
|
||||
CREATE TABLE releases (
|
||||
subscription_id TEXT NOT NULL REFERENCES subscriptions(id),
|
||||
resource_key TEXT NOT NULL,
|
||||
payload TEXT NOT NULL,
|
||||
PRIMARY KEY (subscription_id, resource_key)
|
||||
);
|
||||
|
||||
CREATE TABLE download_jobs (
|
||||
id TEXT PRIMARY KEY,
|
||||
subscription_id TEXT NOT NULL REFERENCES subscriptions(id),
|
||||
resource_key TEXT NOT NULL,
|
||||
title TEXT NOT NULL,
|
||||
season INTEGER NOT NULL,
|
||||
episode INTEGER NOT NULL,
|
||||
download_url TEXT NOT NULL,
|
||||
torrent_bytes BLOB,
|
||||
info_hash TEXT,
|
||||
state TEXT NOT NULL DEFAULT 'queued'
|
||||
CHECK (state IN ('queued', 'submitting', 'submitted', 'downloading', 'completed', 'missing', 'failed')),
|
||||
attempts INTEGER NOT NULL DEFAULT 0,
|
||||
last_error TEXT,
|
||||
next_attempt_at INTEGER NOT NULL DEFAULT 0,
|
||||
UNIQUE(subscription_id, resource_key),
|
||||
UNIQUE(subscription_id, season, episode)
|
||||
);
|
||||
CREATE INDEX jobs_state ON download_jobs(state, next_attempt_at);
|
||||
Reference in New Issue
Block a user