Use userID for sync profile search

This commit is contained in:
Devon Hudson 2023-06-06 11:00:32 -06:00
parent fbbf9b085a
commit d30bae3509
No known key found for this signature in database
GPG key ID: CD06B18E77F6A628

View file

@ -205,11 +205,17 @@ func Search(req *http.Request, device *api.Device, syncDB storage.Database, fts
profileInfos := make(map[string]ProfileInfoResponse) profileInfos := make(map[string]ProfileInfoResponse)
for _, ev := range append(eventsBefore, eventsAfter...) { for _, ev := range append(eventsBefore, eventsAfter...) {
profile, ok := knownUsersProfiles[event.SenderID()] userID, err := rsAPI.QueryUserIDForSender(req.Context(), ev.RoomID(), ev.SenderID())
if err != nil {
logrus.WithError(err).WithField("sender_id", event.SenderID()).Warn("failed to query userprofile")
continue
}
profile, ok := knownUsersProfiles[userID.String()]
if !ok { if !ok {
stateEvent, err := snapshot.GetStateEvent(ctx, ev.RoomID(), spec.MRoomMember, ev.SenderID()) stateEvent, err := snapshot.GetStateEvent(ctx, ev.RoomID(), spec.MRoomMember, ev.SenderID())
if err != nil { if err != nil {
logrus.WithError(err).WithField("user_id", event.SenderID()).Warn("failed to query userprofile") logrus.WithError(err).WithField("sender_id", event.SenderID()).Warn("failed to query userprofile")
continue continue
} }
if stateEvent == nil { if stateEvent == nil {
@ -219,9 +225,9 @@ func Search(req *http.Request, device *api.Device, syncDB storage.Database, fts
AvatarURL: gjson.GetBytes(stateEvent.Content(), "avatar_url").Str, AvatarURL: gjson.GetBytes(stateEvent.Content(), "avatar_url").Str,
DisplayName: gjson.GetBytes(stateEvent.Content(), "displayname").Str, DisplayName: gjson.GetBytes(stateEvent.Content(), "displayname").Str,
} }
knownUsersProfiles[event.SenderID()] = profile knownUsersProfiles[userID.String()] = profile
} }
profileInfos[ev.SenderID()] = profile profileInfos[userID.String()] = profile
} }
results = append(results, Result{ results = append(results, Result{