refactor to mautrix 0.17.x; update deps
This commit is contained in:
35
bot/sync.go
35
bot/sync.go
@@ -3,7 +3,6 @@ package bot
|
||||
import (
|
||||
"context"
|
||||
|
||||
"maunium.net/go/mautrix"
|
||||
"maunium.net/go/mautrix/event"
|
||||
)
|
||||
|
||||
@@ -12,27 +11,27 @@ func (b *Bot) initSync() {
|
||||
|
||||
b.lp.OnEventType(
|
||||
event.StateMember,
|
||||
func(_ mautrix.EventSource, evt *event.Event) {
|
||||
go b.onMembership(evt)
|
||||
func(ctx context.Context, evt *event.Event) {
|
||||
go b.onMembership(ctx, evt)
|
||||
},
|
||||
)
|
||||
b.lp.OnEventType(
|
||||
event.EventMessage,
|
||||
func(_ mautrix.EventSource, evt *event.Event) {
|
||||
go b.onMessage(evt)
|
||||
func(ctx context.Context, evt *event.Event) {
|
||||
go b.onMessage(ctx, evt)
|
||||
},
|
||||
)
|
||||
b.lp.OnEventType(
|
||||
event.EventReaction,
|
||||
func(_ mautrix.EventSource, evt *event.Event) {
|
||||
go b.onReaction(evt)
|
||||
func(ctx context.Context, evt *event.Event) {
|
||||
go b.onReaction(ctx, evt)
|
||||
},
|
||||
)
|
||||
}
|
||||
|
||||
// joinPermit is called by linkpearl when processing "invite" events and deciding if rooms should be auto-joined or not
|
||||
func (b *Bot) joinPermit(evt *event.Event) bool {
|
||||
if !b.allowUsers(evt.Sender, evt.RoomID) {
|
||||
func (b *Bot) joinPermit(ctx context.Context, evt *event.Event) bool {
|
||||
if !b.allowUsers(ctx, evt.Sender, evt.RoomID) {
|
||||
b.log.Debug().Str("userID", evt.Sender.String()).Msg("Rejecting room invitation from unallowed user")
|
||||
return false
|
||||
}
|
||||
@@ -40,13 +39,13 @@ func (b *Bot) joinPermit(evt *event.Event) bool {
|
||||
return true
|
||||
}
|
||||
|
||||
func (b *Bot) onMembership(evt *event.Event) {
|
||||
func (b *Bot) onMembership(ctx context.Context, evt *event.Event) {
|
||||
// mautrix 0.15.x migration
|
||||
if b.ignoreBefore >= evt.Timestamp {
|
||||
return
|
||||
}
|
||||
|
||||
ctx := newContext(evt)
|
||||
ctx = newContext(ctx, evt)
|
||||
|
||||
evtType := evt.Content.AsMember().Membership
|
||||
if evtType == event.MembershipJoin && evt.Sender == b.lp.GetClient().UserID {
|
||||
@@ -61,7 +60,7 @@ func (b *Bot) onMembership(evt *event.Event) {
|
||||
// Potentially handle other membership events in the future
|
||||
}
|
||||
|
||||
func (b *Bot) onMessage(evt *event.Event) {
|
||||
func (b *Bot) onMessage(ctx context.Context, evt *event.Event) {
|
||||
// ignore own messages
|
||||
if evt.Sender == b.lp.GetClient().UserID {
|
||||
return
|
||||
@@ -71,11 +70,11 @@ func (b *Bot) onMessage(evt *event.Event) {
|
||||
return
|
||||
}
|
||||
|
||||
ctx := newContext(evt)
|
||||
ctx = newContext(ctx, evt)
|
||||
b.handle(ctx)
|
||||
}
|
||||
|
||||
func (b *Bot) onReaction(evt *event.Event) {
|
||||
func (b *Bot) onReaction(ctx context.Context, evt *event.Event) {
|
||||
// ignore own messages
|
||||
if evt.Sender == b.lp.GetClient().UserID {
|
||||
return
|
||||
@@ -85,7 +84,7 @@ func (b *Bot) onReaction(evt *event.Event) {
|
||||
return
|
||||
}
|
||||
|
||||
ctx := newContext(evt)
|
||||
ctx = newContext(ctx, evt)
|
||||
b.handleReaction(ctx)
|
||||
}
|
||||
|
||||
@@ -100,7 +99,7 @@ func (b *Bot) onBotJoin(ctx context.Context) {
|
||||
return
|
||||
}
|
||||
|
||||
b.sendIntroduction(evt.RoomID)
|
||||
b.sendIntroduction(ctx, evt.RoomID)
|
||||
b.sendHelp(ctx)
|
||||
}
|
||||
|
||||
@@ -111,7 +110,7 @@ func (b *Bot) onLeave(ctx context.Context) {
|
||||
b.log.Info().Str("eventID", evt.ID.String()).Msg("Suppressing already handled event")
|
||||
return
|
||||
}
|
||||
members, err := b.lp.GetClient().StateStore.GetRoomJoinedOrInvitedMembers(evt.RoomID)
|
||||
members, err := b.lp.GetClient().StateStore.GetRoomJoinedOrInvitedMembers(ctx, evt.RoomID)
|
||||
if err != nil {
|
||||
b.log.Error().Err(err).Str("roomID", evt.RoomID.String()).Msg("cannot get joined or invited members")
|
||||
return
|
||||
@@ -121,7 +120,7 @@ func (b *Bot) onLeave(ctx context.Context) {
|
||||
if count == 1 && members[0] == b.lp.GetClient().UserID {
|
||||
b.log.Info().Str("roomID", evt.RoomID.String()).Msg("no more users left in the room")
|
||||
b.runStop(ctx)
|
||||
_, err := b.lp.GetClient().LeaveRoom(evt.RoomID)
|
||||
_, err := b.lp.GetClient().LeaveRoom(ctx, evt.RoomID)
|
||||
if err != nil {
|
||||
b.Error(ctx, "cannot leave empty room: %v", err)
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user