People: Refresh photo metadata after faces got identified #22

This commit is contained in:
Michael Mayer 2021-09-06 01:16:36 +02:00
parent 0ebff285e5
commit 527a3ff015
3 changed files with 13 additions and 6 deletions

View file

@ -257,7 +257,7 @@ func (m *Face) SetSubjectUID(uid string) (err error) {
}
// RefreshPhotos flags related photos for metadata maintenance.
func (m *Face) RefreshPhotos() (err error) {
func (m *Face) RefreshPhotos() error {
if m.ID == "" {
return fmt.Errorf("empty face id")
}

View file

@ -242,7 +242,13 @@ func (m *Marker) SetFace(f *Face, dist float64) (updated bool, err error) {
// Update matching timestamp.
m.MatchedAt = TimePointer()
return updated, m.Updates(Values{"FaceID": m.FaceID, "FaceDist": m.FaceDist, "SubjectUID": m.SubjectUID, "SubjectSrc": m.SubjectSrc, "Review": false, "MatchedAt": m.MatchedAt})
if err := m.Updates(Values{"FaceID": m.FaceID, "FaceDist": m.FaceDist, "SubjectUID": m.SubjectUID, "SubjectSrc": m.SubjectSrc, "Review": false, "MatchedAt": m.MatchedAt}); err != nil {
return false, err
} else if !updated {
return false, nil
}
return true, m.RefreshPhotos()
}
// SyncSubject maintains the marker subject relationship.
@ -280,7 +286,7 @@ func (m *Marker) SyncSubject(updateRelated bool) (err error) {
// Update related markers?
if m.FaceID == "" || m.SubjectUID == "" {
// Do nothing.
} else if err := Db().Model(&Face{}).Where("id = ? AND subject_uid = ''", m.FaceID).Update("SubjectUID", m.SubjectUID).Error; err != nil {
} else if res := Db().Model(&Face{}).Where("id = ? AND subject_uid = ''", m.FaceID).Update("SubjectUID", m.SubjectUID); res.Error != nil {
return fmt.Errorf("%s (update known face)", err)
} else if !updateRelated {
return nil
@ -291,8 +297,9 @@ func (m *Marker) SyncSubject(updateRelated bool) (err error) {
Where("subject_uid <> ?", m.SubjectUID).
Updates(Values{"SubjectUID": m.SubjectUID, "SubjectSrc": SrcAuto, "Review": false}).Error; err != nil {
return fmt.Errorf("%s (update related markers)", err)
} else {
} else if res.RowsAffected > 0 && m.face != nil {
log.Debugf("marker: matched %s with %s", subj.SubjectName, m.FaceID)
return m.face.RefreshPhotos()
}
return nil
@ -455,7 +462,7 @@ func (m *Marker) ClearFace() (updated bool, err error) {
}
// RefreshPhotos flags related photos for metadata maintenance.
func (m *Marker) RefreshPhotos() (err error) {
func (m *Marker) RefreshPhotos() error {
if m.MarkerUID == "" {
return fmt.Errorf("empty marker uid")
}

View file

@ -283,7 +283,7 @@ func (m *Subject) UpdateMarkerNames() error {
}
// RefreshPhotos flags related photos for metadata maintenance.
func (m *Subject) RefreshPhotos() (err error) {
func (m *Subject) RefreshPhotos() error {
if m.SubjectUID == "" {
return fmt.Errorf("empty subject uid")
}