More tweaks

This commit is contained in:
Neil Alexander 2022-02-21 11:25:05 +00:00
parent 1aa25b38da
commit 3a4add0d06
No known key found for this signature in database
GPG key ID: A02A2019A2BB0944
2 changed files with 17 additions and 24 deletions

View file

@ -101,7 +101,7 @@ var (
Pattern: "m.room.message", Pattern: "m.room.message",
}, },
}, },
Actions: []*Action{{Kind: DontNotifyAction}}, Actions: []*Action{{Kind: NotifyAction}},
} }
mRuleEncryptedDefinition = Rule{ mRuleEncryptedDefinition = Rule{
RuleID: MRuleEncrypted, RuleID: MRuleEncrypted,
@ -114,6 +114,6 @@ var (
Pattern: "m.room.encrypted", Pattern: "m.room.encrypted",
}, },
}, },
Actions: []*Action{{Kind: DontNotifyAction}}, Actions: []*Action{{Kind: NotifyAction}},
} }
) )

View file

@ -115,7 +115,7 @@ func (s *OutputRoomEventConsumer) processMessage(ctx context.Context, event *gom
members, roomSize, err := s.localRoomMembers(ctx, event.RoomID()) members, roomSize, err := s.localRoomMembers(ctx, event.RoomID())
if err != nil { if err != nil {
return err return fmt.Errorf("s.localRoomMembers: %w", err)
} }
if event.Type() == gomatrixserverlib.MRoomMember { if event.Type() == gomatrixserverlib.MRoomMember {
@ -123,7 +123,7 @@ func (s *OutputRoomEventConsumer) processMessage(ctx context.Context, event *gom
var member *localMembership var member *localMembership
member, err = newLocalMembership(&cevent) member, err = newLocalMembership(&cevent)
if err != nil { if err != nil {
return err return fmt.Errorf("newLocalMembership: %w", err)
} }
if member.Membership == gomatrixserverlib.Invite && member.Domain == s.cfg.Matrix.ServerName { if member.Membership == gomatrixserverlib.Invite && member.Domain == s.cfg.Matrix.ServerName {
// localRoomMembers only adds joined members. An invite // localRoomMembers only adds joined members. An invite
@ -135,7 +135,7 @@ func (s *OutputRoomEventConsumer) processMessage(ctx context.Context, event *gom
// TODO: run in parallel with localRoomMembers. // TODO: run in parallel with localRoomMembers.
roomName, err := s.roomName(ctx, event) roomName, err := s.roomName(ctx, event)
if err != nil { if err != nil {
return err return fmt.Errorf("s.roomName: %w", err)
} }
log.WithFields(log.Fields{ log.WithFields(log.Fields{
@ -251,7 +251,7 @@ func (s *OutputRoomEventConsumer) roomName(ctx context.Context, event *gomatrixs
var res rsapi.QueryCurrentStateResponse var res rsapi.QueryCurrentStateResponse
if err := s.rsAPI.QueryCurrentState(ctx, req, &res); err != nil { if err := s.rsAPI.QueryCurrentState(ctx, req, &res); err != nil {
return "", err return "", nil
} }
if eventS := res.StateEvents[roomNameTuple]; eventS != nil { if eventS := res.StateEvents[roomNameTuple]; eventS != nil {
@ -269,7 +269,7 @@ func (s *OutputRoomEventConsumer) roomName(ctx context.Context, event *gomatrixs
} }
} }
if event := res.StateEvents[canonicalAliasTuple]; event != nil { if event = res.StateEvents[canonicalAliasTuple]; event != nil {
return unmarshalCanonicalAlias(event) return unmarshalCanonicalAlias(event)
} }
@ -465,7 +465,7 @@ func (rse *ruleSetEvalContext) HasPowerLevel(userID, levelKey string) (bool, err
req := &rsapi.QueryLatestEventsAndStateRequest{ req := &rsapi.QueryLatestEventsAndStateRequest{
RoomID: rse.roomID, RoomID: rse.roomID,
StateToFetch: []gomatrixserverlib.StateKeyTuple{ StateToFetch: []gomatrixserverlib.StateKeyTuple{
{EventType: "m.room.power_levels"}, {EventType: gomatrixserverlib.MRoomPowerLevels},
}, },
} }
var res rsapi.QueryLatestEventsAndStateResponse var res rsapi.QueryLatestEventsAndStateResponse
@ -513,6 +513,13 @@ func (s *OutputRoomEventConsumer) localPushDevices(ctx context.Context, localpar
// notifyHTTP performs a notificatation to a Push Gateway. // notifyHTTP performs a notificatation to a Push Gateway.
func (s *OutputRoomEventConsumer) notifyHTTP(ctx context.Context, event *gomatrixserverlib.HeaderedEvent, url, format string, devices []*pushgateway.Device, localpart, roomName string, userNumUnreadNotifs int) ([]*pushgateway.Device, error) { func (s *OutputRoomEventConsumer) notifyHTTP(ctx context.Context, event *gomatrixserverlib.HeaderedEvent, url, format string, devices []*pushgateway.Device, localpart, roomName string, userNumUnreadNotifs int) ([]*pushgateway.Device, error) {
logger := log.WithFields(log.Fields{
"event_id": event.EventID(),
"url": url,
"localpart": localpart,
"num_devices": len(devices),
})
var req pushgateway.NotifyRequest var req pushgateway.NotifyRequest
switch format { switch format {
case "event_id_only": case "event_id_only":
@ -549,26 +556,12 @@ func (s *OutputRoomEventConsumer) notifyHTTP(ctx context.Context, event *gomatri
} }
} }
log.WithFields(log.Fields{ logger.Debugf("Notifying HTTP push gateway")
"event_id": event.EventID(),
"url": url,
"localpart": localpart,
"app_id0": devices[0].AppID,
"pushkey": devices[0].PushKey,
"num_devices": len(devices),
}).Debugf("Notifying HTTP push gateway")
var res pushgateway.NotifyResponse var res pushgateway.NotifyResponse
if err := s.pgClient.Notify(ctx, url, &req, &res); err != nil { if err := s.pgClient.Notify(ctx, url, &req, &res); err != nil {
return nil, err return nil, err
} }
logger.WithField("num_rejected", len(res.Rejected)).Tracef("HTTP push gateway result")
log.WithFields(log.Fields{
"event_id": event.EventID(),
"url": url,
"localpart": localpart,
"num_rejected": len(res.Rejected),
}).Tracef("HTTP push gateway result")
if len(res.Rejected) == 0 { if len(res.Rejected) == 0 {
return nil, nil return nil, nil