perf(library): resume and parallelize SAF indexing

This commit is contained in:
zarzet
2026-09-01 02:14:15 +07:00
parent 5eb7f9a872
commit 0d148113f0
6 changed files with 254 additions and 66 deletions
+9
View File
@@ -373,6 +373,15 @@ func saveLibraryCoverDataToCache(cacheDir, cacheKey string, imageData []byte, mi
if len(imageData) == 0 {
return "", fmt.Errorf("cover data is empty")
}
// Cap cached Library artwork while preserving unsupported formats.
if resized, changed, err := resizeCoverForEmbedding(imageData, libraryCoverMaxDimension); err == nil {
if changed {
imageData = resized
mimeType = embeddedCoverMIME(imageData)
}
} else {
GoLog("[LibraryScan] Cover resize skipped for %s: %v\n", cacheKey, err)
}
if err := os.MkdirAll(cacheDir, 0755); err != nil {
return "", fmt.Errorf("failed to create cache dir: %w", err)
}
+2
View File
@@ -35,6 +35,8 @@ func downloadCoverToMemory(coverURL string) ([]byte, error) {
const (
embeddedCoverJPEGQuality = 88
// Bound Library cover cache dimensions.
libraryCoverMaxDimension = 800
maxCoverDownloadBytes = 24 * 1024 * 1024
// Decoding arbitrary provider artwork allocates roughly four bytes per
// pixel. Refuse pathological images before Decode so a malicious extension