removed assertions, optimized parsing

This commit is contained in:
ad 2024-04-30 12:34:28 +03:00
parent 057cf0ee2f
commit b3742f722a

View file

@ -601,9 +601,11 @@ func (s *OutputRoomEventConsumer) writeFTS(ev *rstypes.HeaderedEvent, pduPositio
}
e.SetContentType(ev.Type())
var relatesTo gjson.Result
switch ev.Type() {
case "m.room.message":
e.Content = gjson.GetBytes(ev.Content(), "body").String()
relatesTo = gjson.GetBytes(ev.Content(), "m\\.relates_to")
case spec.MRoomName:
e.Content = gjson.GetBytes(ev.Content(), "name").String()
case spec.MRoomTopic:
@ -624,13 +626,12 @@ func (s *OutputRoomEventConsumer) writeFTS(ev *rstypes.HeaderedEvent, pduPositio
}
// If the event is an edited message we remove the original event from the index
// to avoid duplicates in the search results.
relatesTo := gjson.GetBytes(ev.Content(), "m\\.relates_to")
if relatesTo.Exists() {
relatedData := relatesTo.Value().(map[string]interface{})
if _, ok := relatedData["rel_type"]; ok && relatedData["rel_type"] == "m.replace" {
relatedData := relatesTo.Map()
if _, ok := relatedData["rel_type"]; ok && relatedData["rel_type"].Str == "m.replace" {
// We remove the original event from the index
if srcEventID, ok := relatedData["event_id"]; ok {
if err := s.fts.Delete(srcEventID.(string)); err != nil {
if err := s.fts.Delete(srcEventID.Str); err != nil {
log.WithFields(log.Fields{
"event_id": ev.EventID(),
"src_id": srcEventID,