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)
|
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.
|
// Unknown returns true if the camera is not a known make or model.
|
||||||
func (m *Camera) Unknown() bool {
|
func (m *Camera) Unknown() bool {
|
||||||
return m.CameraSlug == "" || m.CameraSlug == UnknownCamera.CameraSlug
|
return m.CameraSlug == "" || m.CameraSlug == UnknownCamera.CameraSlug
|
||||||
|
|
|
@ -137,3 +137,22 @@ func TestCamera_String(t *testing.T) {
|
||||||
assert.Equal(t, "Unknown", cameraString)
|
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.CameraID = camera.ID
|
||||||
m.Camera = camera
|
m.Camera = camera
|
||||||
m.CameraSrc = source
|
m.CameraSrc = source
|
||||||
|
|
||||||
|
if !m.PhotoScan && m.Camera.Scanner() {
|
||||||
|
m.PhotoScan = true
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// SetLens updates the lens.
|
// SetLens updates the lens.
|
||||||
|
|
Loading…
Reference in a new issue