fix(library): sync allowed extensions across service, schema, and tests

Add .epub and .pdf to comics type, add .pdf to manga type, and ensure
avif/tiff/tif extensions are consistently included in manga across all
layers. Update test fixtures to match the canonical extension lists.
This commit is contained in:
2026-05-01 14:31:17 -04:00
parent ae61acf478
commit d22446d9b9
4 changed files with 6 additions and 6 deletions
+2 -2
View File
@@ -182,13 +182,13 @@ func TestLibraryTypesResponse(t *testing.T) {
"id": "test-id-2", "id": "test-id-2",
"name": "comics", "name": "comics",
"description": "Comic book archives and image formats", "description": "Comic book archives and image formats",
"allowed_extensions": []string{".cbz", ".cbr", ".cb7", ".cbt", ".pdf"}, "allowed_extensions": []string{".cbz", ".cbr", ".cb7", ".cbt", ".epub", ".pdf"},
}, },
{ {
"id": "test-id-3", "id": "test-id-3",
"name": "manga", "name": "manga",
"description": "Manga files including archives and image folders", "description": "Manga files including archives and image folders",
"allowed_extensions": []string{".cbz", ".cbr", ".png", ".jpg", ".jpeg", ".gif", ".bmp", ".webp"}, "allowed_extensions": []string{".cbz", ".cbr", ".epub", ".pdf", ".png", ".jpg", ".jpeg", ".gif", ".bmp", ".webp", ".avif", ".tiff", ".tif"},
}, },
} }
@@ -556,7 +556,7 @@ func TestLibraryTypes(t *testing.T) {
"id": uuid.New().String(), "id": uuid.New().String(),
"name": "comics", "name": "comics",
"description": "Comic book archives and image formats", "description": "Comic book archives and image formats",
"allowed_extensions": []string{".cbz", ".cbr", ".pdf"}, "allowed_extensions": []string{".cbz", ".cbr", ".cb7", ".cbt", ".epub", ".pdf"},
}, },
} }
w.WriteHeader(http.StatusOK) w.WriteHeader(http.StatusOK)
+1 -1
View File
@@ -17,7 +17,7 @@ CREATE TABLE IF NOT EXISTS library_types (
INSERT INTO library_types (name, description, allowed_extensions) VALUES INSERT INTO library_types (name, description, allowed_extensions) VALUES
('ebooks', 'Ebook files including EPUB, PDF, MOBI, etc.', ARRAY['.epub', '.pdf', '.mobi', '.azw', '.azw3', '.txt', '.rtf', '.doc', '.docx', '.lit', '.fb2', '.pdb']), ('ebooks', 'Ebook files including EPUB, PDF, MOBI, etc.', ARRAY['.epub', '.pdf', '.mobi', '.azw', '.azw3', '.txt', '.rtf', '.doc', '.docx', '.lit', '.fb2', '.pdb']),
('comics', 'Comic book archives and image formats', ARRAY['.cbz', '.cbr', '.cb7', '.cbt', '.epub', '.pdf']), ('comics', 'Comic book archives and image formats', ARRAY['.cbz', '.cbr', '.cb7', '.cbt', '.epub', '.pdf']),
('manga', 'Manga files including archives and image folders', ARRAY['.cbz', '.cbr', '.epub', '.png', '.jpg', '.jpeg', '.gif', '.bmp', '.webp']) ('manga', 'Manga files including archives and image folders', ARRAY['.cbz', '.cbr', '.epub', '.pdf', '.png', '.jpg', '.jpeg', '.gif', '.bmp', '.webp', '.avif', '.tiff', '.tif'])
ON CONFLICT (name) DO NOTHING; ON CONFLICT (name) DO NOTHING;
-- Create users table -- Create users table
+2 -2
View File
@@ -30,8 +30,8 @@ const (
var AllowedExtensions = map[string][]string{ var AllowedExtensions = map[string][]string{
LibraryTypeEbooks: {".epub", ".pdf", ".mobi", ".azw", ".azw3", ".txt", ".rtf", ".doc", ".docx", ".lit", ".fb2", ".pdb"}, LibraryTypeEbooks: {".epub", ".pdf", ".mobi", ".azw", ".azw3", ".txt", ".rtf", ".doc", ".docx", ".lit", ".fb2", ".pdb"},
LibraryTypeComics: {".cbz", ".cbr", ".cb7", ".cbt", ".pdf"}, LibraryTypeComics: {".cbz", ".cbr", ".cb7", ".cbt", ".epub", ".pdf"},
LibraryTypeManga: {".cbz", ".cbr", ".png", ".jpg", ".jpeg", ".gif", ".bmp", ".webp", ".avif", ".tiff", ".tif"}, LibraryTypeManga: {".cbz", ".cbr", ".epub", ".pdf", ".png", ".jpg", ".jpeg", ".gif", ".bmp", ".webp", ".avif", ".tiff", ".tif"},
} }
var MimeTypes = map[string]string{ var MimeTypes = map[string]string{