Metadata: Automatically detect scans based on metadata #322
Signed-off-by: Michael Mayer <michael@photoprism.app>
This commit is contained in:
parent
c030cf862e
commit
4451447bdd
|
@ -140,6 +140,15 @@ func (m *Camera) String() string {
|
|||
return clean.Log(m.CameraName)
|
||||
}
|
||||
|
||||
// Scanner checks whether the model appears to be a scanner.
|
||||
func (m *Camera) Scanner() bool {
|
||||
if m.CameraSlug == "" {
|
||||
return false
|
||||
}
|
||||
|
||||
return strings.Contains(m.CameraSlug, "scan")
|
||||
}
|
||||
|
||||
// Unknown returns true if the camera is not a known make or model.
|
||||
func (m *Camera) Unknown() bool {
|
||||
return m.CameraSlug == "" || m.CameraSlug == UnknownCamera.CameraSlug
|
||||
|
|
|
@ -137,3 +137,22 @@ func TestCamera_String(t *testing.T) {
|
|||
assert.Equal(t, "Unknown", cameraString)
|
||||
})
|
||||
}
|
||||
|
||||
func TestCamera_Scanner(t *testing.T) {
|
||||
t.Run("model XXX make Nikon", func(t *testing.T) {
|
||||
camera := NewCamera("XXX", "Nikon")
|
||||
assert.False(t, camera.Scanner())
|
||||
})
|
||||
t.Run("MS Scanner", func(t *testing.T) {
|
||||
camera := NewCamera("MS Scanner", "")
|
||||
assert.True(t, camera.Scanner())
|
||||
})
|
||||
t.Run("model Unknown make XXX", func(t *testing.T) {
|
||||
camera := NewCamera("", "test")
|
||||
assert.False(t, camera.Scanner())
|
||||
})
|
||||
t.Run("model Unknown make Unknown", func(t *testing.T) {
|
||||
camera := NewCamera("", "")
|
||||
assert.False(t, camera.Scanner())
|
||||
})
|
||||
}
|
||||
|
|
|
@ -654,6 +654,10 @@ func (m *Photo) SetCamera(camera *Camera, source string) {
|
|||
m.CameraID = camera.ID
|
||||
m.Camera = camera
|
||||
m.CameraSrc = source
|
||||
|
||||
if !m.PhotoScan && m.Camera.Scanner() {
|
||||
m.PhotoScan = true
|
||||
}
|
||||
}
|
||||
|
||||
// SetLens updates the lens.
|
||||
|
|
Loading…
Reference in a new issue