feat: implement RSS subscriptions, downloader routing and local media checks
This commit is contained in:
@@ -0,0 +1,37 @@
|
||||
CREATE TABLE media_destinations (
|
||||
id TEXT PRIMARY KEY,
|
||||
name TEXT NOT NULL,
|
||||
kind TEXT NOT NULL CHECK (kind = 'local'),
|
||||
root_path TEXT NOT NULL
|
||||
);
|
||||
CREATE TABLE destination_selection (
|
||||
singleton INTEGER PRIMARY KEY CHECK (singleton = 1),
|
||||
destination_id TEXT REFERENCES media_destinations(id)
|
||||
);
|
||||
INSERT INTO destination_selection(singleton) VALUES (1);
|
||||
CREATE TABLE destination_mappings (
|
||||
id TEXT PRIMARY KEY,
|
||||
destination_id TEXT NOT NULL REFERENCES media_destinations(id),
|
||||
downloader_id TEXT NOT NULL REFERENCES downloader_instances(id),
|
||||
version INTEGER NOT NULL,
|
||||
download_root TEXT NOT NULL,
|
||||
UNIQUE(destination_id, downloader_id, version)
|
||||
);
|
||||
ALTER TABLE download_jobs ADD COLUMN destination_id TEXT REFERENCES media_destinations(id);
|
||||
ALTER TABLE download_jobs ADD COLUMN mapping_id TEXT REFERENCES destination_mappings(id);
|
||||
ALTER TABLE download_jobs ADD COLUMN download_save_path TEXT;
|
||||
ALTER TABLE download_jobs ADD COLUMN file_status TEXT NOT NULL DEFAULT 'unchecked'
|
||||
CHECK (file_status IN ('unchecked', 'present', 'absent', 'unavailable'));
|
||||
ALTER TABLE download_jobs ADD COLUMN file_checked_at INTEGER;
|
||||
ALTER TABLE download_jobs ADD COLUMN file_last_success_at INTEGER;
|
||||
ALTER TABLE download_jobs ADD COLUMN file_error TEXT;
|
||||
CREATE TABLE media_files (
|
||||
job_id TEXT NOT NULL REFERENCES download_jobs(id),
|
||||
relative_path TEXT NOT NULL,
|
||||
expected_size INTEGER NOT NULL,
|
||||
observed_size INTEGER,
|
||||
status TEXT NOT NULL DEFAULT 'unchecked'
|
||||
CHECK (status IN ('unchecked', 'present', 'absent', 'unavailable')),
|
||||
error TEXT,
|
||||
PRIMARY KEY(job_id, relative_path)
|
||||
);
|
||||
Reference in New Issue
Block a user