mirror of
https://github.com/photoprism/photoprism.git
synced 2025-12-12 00:34:13 +01:00
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:
@@ -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))
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user