BREAKING: update mautrix to 0.15.x
This commit is contained in:
49
vendor/gitlab.com/etke.cc/linkpearl/sync.go
generated
vendored
49
vendor/gitlab.com/etke.cc/linkpearl/sync.go
generated
vendored
@@ -11,31 +11,27 @@ import (
|
||||
// OnEventType allows callers to be notified when there are new events for the given event type.
|
||||
// There are no duplicate checks.
|
||||
func (l *Linkpearl) OnEventType(eventType event.Type, callback mautrix.EventHandler) {
|
||||
l.api.Syncer.(*mautrix.DefaultSyncer).OnEventType(eventType, callback)
|
||||
l.api.Syncer.(mautrix.ExtensibleSyncer).OnEventType(eventType, callback)
|
||||
}
|
||||
|
||||
// OnSync shortcut to mautrix.DefaultSyncer.OnSync
|
||||
func (l *Linkpearl) OnSync(callback mautrix.SyncHandler) {
|
||||
l.api.Syncer.(*mautrix.DefaultSyncer).OnSync(callback)
|
||||
l.api.Syncer.(mautrix.ExtensibleSyncer).OnSync(callback)
|
||||
}
|
||||
|
||||
// OnEvent shortcut to mautrix.DefaultSyncer.OnEvent
|
||||
func (l *Linkpearl) OnEvent(callback mautrix.EventHandler) {
|
||||
l.api.Syncer.(*mautrix.DefaultSyncer).OnEvent(callback)
|
||||
l.api.Syncer.(mautrix.ExtensibleSyncer).OnEvent(callback)
|
||||
}
|
||||
|
||||
func (l *Linkpearl) initSync() {
|
||||
if l.olm != nil {
|
||||
l.api.Syncer.(*mautrix.DefaultSyncer).OnSync(l.olm.ProcessSyncResponse)
|
||||
l.api.Syncer.(*mautrix.DefaultSyncer).OnEventType(
|
||||
event.StateEncryption,
|
||||
func(source mautrix.EventSource, evt *event.Event) {
|
||||
go l.onEncryption(source, evt)
|
||||
},
|
||||
)
|
||||
}
|
||||
|
||||
l.api.Syncer.(*mautrix.DefaultSyncer).OnEventType(
|
||||
l.api.Syncer.(mautrix.ExtensibleSyncer).OnEventType(
|
||||
event.StateEncryption,
|
||||
func(source mautrix.EventSource, evt *event.Event) {
|
||||
go l.onEncryption(source, evt)
|
||||
},
|
||||
)
|
||||
l.api.Syncer.(mautrix.ExtensibleSyncer).OnEventType(
|
||||
event.StateMember,
|
||||
func(source mautrix.EventSource, evt *event.Event) {
|
||||
go l.onMembership(source, evt)
|
||||
@@ -43,11 +39,9 @@ func (l *Linkpearl) initSync() {
|
||||
)
|
||||
}
|
||||
|
||||
func (l *Linkpearl) onMembership(_ mautrix.EventSource, evt *event.Event) {
|
||||
if l.olm != nil {
|
||||
l.olm.HandleMemberEvent(evt)
|
||||
}
|
||||
l.store.SetMembership(evt)
|
||||
func (l *Linkpearl) onMembership(src mautrix.EventSource, evt *event.Event) {
|
||||
l.ch.Machine().HandleMemberEvent(src, evt)
|
||||
l.api.StateStore.SetMembership(evt.RoomID, id.UserID(evt.GetStateKey()), evt.Content.AsMember().Membership)
|
||||
|
||||
// potentially autoaccept invites
|
||||
l.onInvite(evt)
|
||||
@@ -78,9 +72,9 @@ func (l *Linkpearl) tryJoin(roomID id.RoomID, retry int) {
|
||||
|
||||
_, err := l.api.JoinRoomByID(roomID)
|
||||
if err != nil {
|
||||
l.log.Error("cannot join the room %q: %v", roomID, err)
|
||||
l.log.Error().Err(err).Str("roomID", roomID.String()).Msg("cannot join room")
|
||||
time.Sleep(5 * time.Second)
|
||||
l.log.Debug("trying to join again (%d/%d)", retry+1, l.maxretries)
|
||||
l.log.Error().Err(err).Str("roomID", roomID.String()).Int("retry", retry+1).Msg("trying to join again")
|
||||
l.tryJoin(roomID, retry+1)
|
||||
}
|
||||
}
|
||||
@@ -92,9 +86,9 @@ func (l *Linkpearl) tryLeave(roomID id.RoomID, retry int) {
|
||||
|
||||
_, err := l.api.LeaveRoom(roomID)
|
||||
if err != nil {
|
||||
l.log.Error("cannot leave room: %v", err)
|
||||
l.log.Error().Err(err).Str("roomID", roomID.String()).Msg("cannot leave room")
|
||||
time.Sleep(5 * time.Second)
|
||||
l.log.Debug("trying to leave again (%d/%d)", retry+1, l.maxretries)
|
||||
l.log.Error().Err(err).Str("roomID", roomID.String()).Int("retry", retry+1).Msg("trying to leave again")
|
||||
l.tryLeave(roomID, retry+1)
|
||||
}
|
||||
}
|
||||
@@ -104,7 +98,12 @@ func (l *Linkpearl) onEmpty(evt *event.Event) {
|
||||
return
|
||||
}
|
||||
|
||||
members := l.store.GetRoomMembers(evt.RoomID)
|
||||
members, err := l.api.StateStore.GetRoomJoinedOrInvitedMembers(evt.RoomID)
|
||||
if err != nil {
|
||||
l.log.Error().Err(err).Str("roomID", evt.RoomID.String()).Msg("cannot get joined or invited members")
|
||||
return
|
||||
}
|
||||
|
||||
if len(members) >= 1 && members[0] != l.api.UserID {
|
||||
return
|
||||
}
|
||||
@@ -113,5 +112,5 @@ func (l *Linkpearl) onEmpty(evt *event.Event) {
|
||||
}
|
||||
|
||||
func (l *Linkpearl) onEncryption(_ mautrix.EventSource, evt *event.Event) {
|
||||
l.store.SetEncryptionEvent(evt)
|
||||
l.api.StateStore.SetEncryptionEvent(evt.RoomID, evt.Content.AsEncryption())
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user