feat: added sponsorblock support and improved resume persistence

This commit is contained in:
2025-08-26 09:14:49 +05:30
parent 4184b4b779
commit b73ab86066
8 changed files with 319 additions and 37 deletions

View File

@@ -68,5 +68,42 @@ pub fn get_migrations() -> Vec<Migration> {
);
",
kind: MigrationKind::Up,
},
Migration {
version: 2,
description: "add_columns_to_downloads",
sql: "
ALTER TABLE downloads ADD COLUMN output_format TEXT;
ALTER TABLE downloads ADD COLUMN embed_metadata INTEGER NOT NULL DEFAULT 0;
ALTER TABLE downloads ADD COLUMN embed_thumbnail INTEGER NOT NULL DEFAULT 0;
ALTER TABLE downloads ADD COLUMN sponsorblock_remove TEXT;
ALTER TABLE downloads ADD COLUMN sponsorblock_mark TEXT;
ALTER TABLE downloads ADD COLUMN created_at TEXT;
ALTER TABLE downloads ADD COLUMN updated_at TEXT;
-- Update existing rows with current timestamp
UPDATE downloads SET created_at = CURRENT_TIMESTAMP WHERE created_at IS NULL;
UPDATE downloads SET updated_at = CURRENT_TIMESTAMP WHERE updated_at IS NULL;
CREATE TRIGGER IF NOT EXISTS update_downloads_updated_at
AFTER UPDATE ON downloads
FOR EACH ROW
BEGIN
UPDATE downloads SET updated_at = CURRENT_TIMESTAMP WHERE id = NEW.id;
END;
-- Create trigger for new inserts to set created_at and updated_at
CREATE TRIGGER IF NOT EXISTS set_downloads_timestamps
AFTER INSERT ON downloads
FOR EACH ROW
WHEN NEW.created_at IS NULL OR NEW.updated_at IS NULL
BEGIN
UPDATE downloads
SET created_at = COALESCE(NEW.created_at, CURRENT_TIMESTAMP),
updated_at = COALESCE(NEW.updated_at, CURRENT_TIMESTAMP)
WHERE id = NEW.id;
END;
",
kind: MigrationKind::Up,
}]
}

View File

@@ -36,6 +36,9 @@
]
},
"plugins": {
"sql": {
"preload": ["sqlite:database.db"]
},
"updater": {
"pubkey": "dW50cnVzdGVkIGNvbW1lbnQ6IG1pbmlzaWduIHB1YmxpYyBrZXk6IDNDM0I4ODcyODdGOTM4MDIKUldRQ09QbUhjb2c3UENGY1lFUVdTVWhucmJ4QzdGeW9sU3VHVFlGNWY5anZab2s4SU1rMWFsekMK",
"endpoints": [