20a5912210
Still need to fix label names when re-indexing so that custom names are used, if changed by the user. Signed-off-by: Michael Mayer <michael@liquidbytes.net>
36 lines
1.1 KiB
Go
36 lines
1.1 KiB
Go
package classify
|
|
|
|
import (
|
|
"strings"
|
|
|
|
"github.com/photoprism/photoprism/pkg/txt"
|
|
)
|
|
|
|
// Label represents a MediaFile label (automatically created).
|
|
type Label struct {
|
|
Name string `json:"label"` // Label name
|
|
Source string `json:"source"` // Where was this label found / detected?
|
|
Uncertainty int `json:"uncertainty"` // >= 0
|
|
Priority int `json:"priority"` // >= 0
|
|
Categories []string `json:"categories"` // List of similar labels
|
|
}
|
|
|
|
// LocationLabel returns a new labels for a location and expects name, uncertainty and priority as arguments.
|
|
func LocationLabel(name string, uncertainty int, priority int) Label {
|
|
if index := strings.Index(name, " / "); index > 1 {
|
|
name = name[:index]
|
|
}
|
|
|
|
if index := strings.Index(name, " - "); index > 1 {
|
|
name = name[:index]
|
|
}
|
|
|
|
label := Label{Name: name, Source: "location", Uncertainty: uncertainty, Priority: priority}
|
|
|
|
return label
|
|
}
|
|
|
|
// Title returns a formatted label title as string.
|
|
func (l Label) Title() string {
|
|
return txt.Title(txt.Clip(strings.TrimSpace(l.Name), 128))
|
|
}
|