Download: Add Disabled, Originals, MediaRaw & MediaSidecar Flags #2234

Extends DownloadSettings with 4 additional options:
- Name: File name pattern for downloaded files (existed)
- Disabled: Disables downloads
- Originals: Only download files stored in "originals" folder
- MediaRaw: Include RAW image files
- MediaSidecar: Include metadata sidecar files (JSON, XMP, YAML)
This commit is contained in:
Michael Mayer
2022-04-15 09:42:07 +02:00
parent 0a9f6a72bc
commit 92e6c4fe1e
335 changed files with 3606 additions and 2708 deletions

View File

@@ -13,8 +13,8 @@ import (
"github.com/photoprism/photoprism/internal/service"
"github.com/photoprism/photoprism/internal/thumb"
"github.com/photoprism/photoprism/pkg/clean"
"github.com/photoprism/photoprism/pkg/fs"
"github.com/photoprism/photoprism/pkg/sanitize"
)
// GetThumb returns a thumbnail image matching the file hash, crop area, and type.
@@ -37,16 +37,16 @@ func GetThumb(router *gin.RouterGroup) {
start := time.Now()
conf := service.Config()
download := c.Query("download") != ""
fileHash, cropArea := crop.ParseThumb(sanitize.Token(c.Param("thumb")))
fileHash, cropArea := crop.ParseThumb(clean.Token(c.Param("thumb")))
// Is cropped thumbnail?
if cropArea != "" {
cropName := crop.Name(sanitize.Token(c.Param("size")))
cropName := crop.Name(clean.Token(c.Param("size")))
cropSize, ok := crop.Sizes[cropName]
if !ok {
log.Errorf("%s: invalid size %s", logPrefix, sanitize.Log(string(cropName)))
log.Errorf("%s: invalid size %s", logPrefix, clean.Log(string(cropName)))
c.Data(http.StatusOK, "image/svg+xml", photoIconSvg)
return
}
@@ -73,12 +73,12 @@ func GetThumb(router *gin.RouterGroup) {
return
}
thumbName := thumb.Name(sanitize.Token(c.Param("size")))
thumbName := thumb.Name(clean.Token(c.Param("size")))
size, ok := thumb.Sizes[thumbName]
if !ok {
log.Errorf("%s: invalid size %s", logPrefix, sanitize.Log(thumbName.String()))
log.Errorf("%s: invalid size %s", logPrefix, clean.Log(thumbName.String()))
c.Data(http.StatusOK, "image/svg+xml", photoIconSvg)
return
}
@@ -153,17 +153,17 @@ func GetThumb(router *gin.RouterGroup) {
fileName := photoprism.FileName(f.FileRoot, f.FileName)
if !fs.FileExists(fileName) {
log.Errorf("%s: file %s is missing", logPrefix, sanitize.Log(f.FileName))
log.Errorf("%s: file %s is missing", logPrefix, clean.Log(f.FileName))
c.Data(http.StatusOK, "image/svg+xml", brokenIconSvg)
// Set missing flag so that the file doesn't show up in search results anymore.
logError(logPrefix, f.Update("FileMissing", true))
if f.AllFilesMissing() {
log.Infof("%s: deleting photo, all files missing for %s", logPrefix, sanitize.Log(f.FileName))
log.Infof("%s: deleting photo, all files missing for %s", logPrefix, clean.Log(f.FileName))
if _, err := f.RelatedPhoto().Delete(false); err != nil {
log.Errorf("%s: %s while deleting %s", logPrefix, err, sanitize.Log(f.FileName))
log.Errorf("%s: %s while deleting %s", logPrefix, err, clean.Log(f.FileName))
}
}