MCPcopy Create free account
hub / github.com/daodst/chat / processPresence

Method processPresence

federationapi/routing/send.go:410–432  ·  view source on GitHub ↗

processPresence handles m.receipt events

(ctx context.Context, e gomatrixserverlib.EDU)

Source from the content-addressed store, hash-verified

408
409// processPresence handles m.receipt events
410func (t *txnReq) processPresence(ctx context.Context, e gomatrixserverlib.EDU) error {
411 payload := types.Presence{}
412 if err := json.Unmarshal(e.Content, &payload); err != nil {
413 return err
414 }
415 for _, content := range payload.Push {
416 if _, serverName, err := gomatrixserverlib.SplitID('@', content.UserID); err != nil {
417 continue
418 } else if serverName == t.ourServerName {
419 continue
420 } else if serverName != t.Origin {
421 continue
422 }
423 presence, ok := syncTypes.PresenceFromString(content.Presence)
424 if !ok {
425 continue
426 }
427 if err := t.producer.SendPresence(ctx, content.UserID, presence, content.StatusMsg, content.LastActiveAgo); err != nil {
428 return err
429 }
430 }
431 return nil
432}
433
434func (t *txnReq) processSigningKeyUpdate(ctx context.Context, e gomatrixserverlib.EDU) error {
435 var updatePayload keyapi.CrossSigningKeyUpdate

Callers 1

processEDUsMethod · 0.95

Calls 1

SendPresenceMethod · 0.65

Tested by

no test coverage detected