People: Improve face thumbnail selection #22

This commit is contained in:
Michael Mayer 2021-09-19 15:59:29 +02:00
parent a89e0e24d9
commit 6c555457a0
2 changed files with 13 additions and 5 deletions

View file

@ -514,10 +514,14 @@ func (m *Marker) OverlapArea(marker Marker) (area float64) {
}
// FindMarker returns an existing row if exists.
func FindMarker(uid string) *Marker {
func FindMarker(markerUid string) *Marker {
if markerUid == "" {
return nil
}
var result Marker
if err := Db().Where("marker_uid = ?", uid).First(&result).Error; err != nil {
if err := Db().Where("marker_uid = ?", markerUid).First(&result).Error; err != nil {
return nil
}
@ -526,11 +530,15 @@ func FindMarker(uid string) *Marker {
// FindFaceMarker finds the best marker for a given face
func FindFaceMarker(faceId string) *Marker {
if faceId == "" {
return nil
}
var result Marker
if err := Db().Where("face_id = ?", faceId).
Where("file_hash <> '' AND marker_invalid = 0").
Order("q DESC").First(&result).Error; err != nil {
Order("face_dist ASC, q DESC").First(&result).Error; err != nil {
log.Warnf("face: no marker for %s", txt.Quote(faceId))
return nil
}

View file

@ -172,10 +172,10 @@ func UpdateSubjectPreviews() (err error) {
err = Db().Table(entity.Subject{}.TableName()).
UpdateColumn("marker_uid", gorm.Expr("(SELECT m.marker_uid FROM "+
fmt.Sprintf(
"%s m WHERE m.subj_uid = %s.subj_uid AND m.subj_src = 'manual' ",
"%s m WHERE m.subj_uid = %s.subj_uid ",
entity.Marker{}.TableName(),
entity.Subject{}.TableName())+
` AND m.file_hash <> '' ORDER BY m.q DESC LIMIT 1)
` AND m.file_hash <> '' ORDER BY m.subj_src DESC, m.q DESC LIMIT 1)
WHERE marker_src = '' AND deleted_at IS NULL`)).
Error