Don't encrypt outgoing reactions
This commit is contained in:
parent
22681875f3
commit
9d4fffb259
2
go.mod
2
go.mod
@ -21,7 +21,7 @@ require (
|
|||||||
golang.org/x/net v0.0.0-20200324143707-d3edc9973b7e
|
golang.org/x/net v0.0.0-20200324143707-d3edc9973b7e
|
||||||
gopkg.in/toast.v1 v1.0.0-20180812000517-0a84660828b2
|
gopkg.in/toast.v1 v1.0.0-20180812000517-0a84660828b2
|
||||||
gopkg.in/yaml.v2 v2.2.8
|
gopkg.in/yaml.v2 v2.2.8
|
||||||
maunium.net/go/mautrix v0.2.0-beta.4.0.20200505153708-a120e7a70f5a
|
maunium.net/go/mautrix v0.2.0-beta.4.0.20200505161530-e9e56523da93
|
||||||
maunium.net/go/mauview v0.1.0
|
maunium.net/go/mauview v0.1.0
|
||||||
maunium.net/go/tcell v0.1.0
|
maunium.net/go/tcell v0.1.0
|
||||||
)
|
)
|
||||||
|
2
go.sum
2
go.sum
@ -94,6 +94,8 @@ maunium.net/go/mautrix v0.2.0-beta.4.0.20200429002157-8c3bc8eb8f22 h1:hN7gAmWJqI
|
|||||||
maunium.net/go/mautrix v0.2.0-beta.4.0.20200429002157-8c3bc8eb8f22/go.mod h1:SkGZzch8CvU2qKtNpYxtzZ0sQxfVEJ3IsVVLSUBUx9Y=
|
maunium.net/go/mautrix v0.2.0-beta.4.0.20200429002157-8c3bc8eb8f22/go.mod h1:SkGZzch8CvU2qKtNpYxtzZ0sQxfVEJ3IsVVLSUBUx9Y=
|
||||||
maunium.net/go/mautrix v0.2.0-beta.4.0.20200505153708-a120e7a70f5a h1:5cXujK/NGwGDdllVebkfTfUq/yjfF+lc56Wjjikwl50=
|
maunium.net/go/mautrix v0.2.0-beta.4.0.20200505153708-a120e7a70f5a h1:5cXujK/NGwGDdllVebkfTfUq/yjfF+lc56Wjjikwl50=
|
||||||
maunium.net/go/mautrix v0.2.0-beta.4.0.20200505153708-a120e7a70f5a/go.mod h1:SkGZzch8CvU2qKtNpYxtzZ0sQxfVEJ3IsVVLSUBUx9Y=
|
maunium.net/go/mautrix v0.2.0-beta.4.0.20200505153708-a120e7a70f5a/go.mod h1:SkGZzch8CvU2qKtNpYxtzZ0sQxfVEJ3IsVVLSUBUx9Y=
|
||||||
|
maunium.net/go/mautrix v0.2.0-beta.4.0.20200505161530-e9e56523da93 h1:kaf3m/X4QckuNZZjfUdFpaW4E+FnsqsO7UpKT9Rn+kA=
|
||||||
|
maunium.net/go/mautrix v0.2.0-beta.4.0.20200505161530-e9e56523da93/go.mod h1:SkGZzch8CvU2qKtNpYxtzZ0sQxfVEJ3IsVVLSUBUx9Y=
|
||||||
maunium.net/go/mauview v0.1.0 h1:x2WdkKI2zdriJuPAB0CKlwmnHGE7W9xfM5z6RgG+IIg=
|
maunium.net/go/mauview v0.1.0 h1:x2WdkKI2zdriJuPAB0CKlwmnHGE7W9xfM5z6RgG+IIg=
|
||||||
maunium.net/go/mauview v0.1.0/go.mod h1:og9WbzmWe9SNYNyOFlCv8qa9zMcOvG2nzRJ5vYyud9U=
|
maunium.net/go/mauview v0.1.0/go.mod h1:og9WbzmWe9SNYNyOFlCv8qa9zMcOvG2nzRJ5vYyud9U=
|
||||||
maunium.net/go/tcell v0.1.0 h1:XzsEoGCvOw5nac+tlkSLzQcliLYTN4PrtA7ar2ptjSM=
|
maunium.net/go/tcell v0.1.0 h1:XzsEoGCvOw5nac+tlkSLzQcliLYTN4PrtA7ar2ptjSM=
|
||||||
|
@ -569,6 +569,10 @@ func (c *Container) HandleEncrypted(source EventSource, mxEvent *event.Event) {
|
|||||||
c.HandleMessage(source, evt)
|
c.HandleMessage(source, evt)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
type Relatable interface {
|
||||||
|
GetRelatesTo() *event.RelatesTo
|
||||||
|
}
|
||||||
|
|
||||||
// HandleMessage is the event handler for the m.room.message timeline event.
|
// HandleMessage is the event handler for the m.room.message timeline event.
|
||||||
func (c *Container) HandleMessage(source EventSource, mxEvent *event.Event) {
|
func (c *Container) HandleMessage(source EventSource, mxEvent *event.Event) {
|
||||||
room := c.GetOrCreateRoom(mxEvent.RoomID)
|
room := c.GetOrCreateRoom(mxEvent.RoomID)
|
||||||
@ -579,13 +583,16 @@ func (c *Container) HandleMessage(source EventSource, mxEvent *event.Event) {
|
|||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
rel := mxEvent.Content.AsMessage().GetRelatesTo()
|
relatable, ok := mxEvent.Content.Parsed.(Relatable)
|
||||||
if editID := rel.GetReplaceID(); len(editID) > 0 {
|
if ok {
|
||||||
c.HandleEdit(room, editID, muksevt.Wrap(mxEvent))
|
rel := relatable.GetRelatesTo()
|
||||||
return
|
if editID := rel.GetReplaceID(); len(editID) > 0 {
|
||||||
} else if reactionID := rel.GetAnnotationID(); mxEvent.Type == event.EventReaction && len(reactionID) > 0 {
|
c.HandleEdit(room, editID, muksevt.Wrap(mxEvent))
|
||||||
c.HandleReaction(room, reactionID, muksevt.Wrap(mxEvent))
|
return
|
||||||
return
|
} else if reactionID := rel.GetAnnotationID(); mxEvent.Type == event.EventReaction && len(reactionID) > 0 {
|
||||||
|
c.HandleReaction(room, reactionID, muksevt.Wrap(mxEvent))
|
||||||
|
return
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
events, err := c.history.Append(room, []*event.Event{mxEvent})
|
events, err := c.history.Append(room, []*event.Event{mxEvent})
|
||||||
@ -880,7 +887,7 @@ func (c *Container) SendEvent(evt *muksevt.Event) (id.EventID, error) {
|
|||||||
_, _ = c.client.UserTyping(evt.RoomID, false, 0)
|
_, _ = c.client.UserTyping(evt.RoomID, false, 0)
|
||||||
c.typing = 0
|
c.typing = 0
|
||||||
room := c.GetRoom(evt.RoomID)
|
room := c.GetRoom(evt.RoomID)
|
||||||
if room != nil && room.Encrypted {
|
if room != nil && room.Encrypted && evt.Type != event.EventReaction {
|
||||||
encrypted, err := c.crypto.EncryptMegolmEvent(evt.RoomID, evt.Type, evt.Content)
|
encrypted, err := c.crypto.EncryptMegolmEvent(evt.RoomID, evt.Type, evt.Content)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
if err != crypto.SessionExpired && err != crypto.SessionNotShared && err != crypto.NoGroupSession {
|
if err != crypto.SessionExpired && err != crypto.SessionNotShared && err != crypto.NoGroupSession {
|
||||||
|
Loading…
Reference in New Issue
Block a user