Simplify code

This commit is contained in:
Slavi Pantaleev
2022-08-25 21:38:42 +03:00
parent 236a128129
commit 06856adb86
2 changed files with 13 additions and 27 deletions

View File

@@ -19,15 +19,15 @@ import (
// Bot represents matrix bot
type Bot struct {
noowner bool
federation bool
prefix string
domain string
rooms map[string]id.RoomID
roomsmu *sync.Mutex
log *logger.Logger
lp *linkpearl.Linkpearl
handledEvents sync.Map
noowner bool
federation bool
prefix string
domain string
rooms map[string]id.RoomID
roomsmu *sync.Mutex
log *logger.Logger
lp *linkpearl.Linkpearl
handledJoinEvents sync.Map
}
// New creates a new matrix bot

View File

@@ -29,27 +29,13 @@ func (b *Bot) initSync() {
func (b *Bot) onMembership(evt *event.Event) {
hub := sentry.CurrentHub().Clone()
hub.ConfigureScope(func(scope *sentry.Scope) {
scope.SetUser(sentry.User{ID: evt.Sender.String()})
scope.SetContext("event", map[string]string{
"id": evt.ID.String(),
"room": evt.RoomID.String(),
"sender": evt.Sender.String(),
})
})
if evt.Sender == b.lp.GetClient().UserID {
// Handle membership events related to our own (bot) user first
switch evt.Content.AsMember().Membership {
case event.MembershipJoin:
b.onBotJoin(evt, hub)
}
if evt.Content.AsMember().Membership == event.MembershipJoin && evt.Sender == b.lp.GetClient().UserID {
b.onBotJoin(evt, hub)
return
}
// Handle membership events related to other users
// Potentially handle other membership events in the future
}
func (b *Bot) onMessage(evt *event.Event) {
@@ -106,7 +92,7 @@ func (b *Bot) onEncryptedMessage(evt *event.Event) {
func (b *Bot) onBotJoin(evt *event.Event, hub *sentry.Hub) {
// Workaround for membership=join events which are delivered to us twice,
// as described in this bug report: https://github.com/matrix-org/synapse/issues/9768
_, exists := b.handledEvents.LoadOrStore(evt.ID, true)
_, exists := b.handledJoinEvents.LoadOrStore(evt.ID, true)
if exists {
b.log.Info("Suppressing already handled event %s", evt.ID)
return