@@ -20,10 +20,12 @@ import (
20
20
"context"
21
21
"fmt"
22
22
"strings"
23
+ "time"
23
24
24
25
"github.com/rs/zerolog"
25
26
"maunium.net/go/mautrix/bridge/status"
26
27
"maunium.net/go/mautrix/bridgev2"
28
+ "maunium.net/go/mautrix/bridgev2/database"
27
29
"maunium.net/go/mautrix/bridgev2/networkid"
28
30
bridgeEvt "maunium.net/go/mautrix/event"
29
31
@@ -45,10 +47,8 @@ type TwitterClient struct {
45
47
}
46
48
47
49
var (
48
- _ bridgev2.NetworkAPI = (* TwitterClient )(nil )
49
- _ bridgev2.ReactionHandlingNetworkAPI = (* TwitterClient )(nil )
50
- _ bridgev2.ReadReceiptHandlingNetworkAPI = (* TwitterClient )(nil )
51
- _ bridgev2.PushableNetworkAPI = (* TwitterClient )(nil )
50
+ _ bridgev2.NetworkAPI = (* TwitterClient )(nil )
51
+ _ bridgev2.PushableNetworkAPI = (* TwitterClient )(nil )
52
52
)
53
53
54
54
func NewTwitterClient (ctx context.Context , tc * TwitterConnector , login * bridgev2.UserLogin ) * TwitterClient {
@@ -175,13 +175,27 @@ func (tc *TwitterClient) GetCapabilities(ctx context.Context, portal *bridgev2.P
175
175
UserMentions : true ,
176
176
RoomMentions : false ,
177
177
178
+ Edits : true ,
179
+ EditMaxCount : 10 ,
180
+ EditMaxAge : 15 * time .Minute ,
178
181
Captions : true ,
179
182
Replies : true ,
180
183
Reactions : true ,
181
184
ReactionCount : 1 ,
182
185
}
183
186
}
184
187
188
+ func (tc * TwitterClient ) convertEditToMatrix (ctx context.Context , portal * bridgev2.Portal , intent bridgev2.MatrixAPI , existing []* database.Message , data * event.XEventMessage ) (* bridgev2.ConvertedEdit , error ) {
189
+ data .Text = strings .TrimPrefix (data .Text , "Edited: " )
190
+ converted , err := tc .convertToMatrix (ctx , portal , intent , data )
191
+ if err != nil {
192
+ return nil , err
193
+ }
194
+ return & bridgev2.ConvertedEdit {
195
+ ModifiedParts : []* bridgev2.ConvertedEditPart {converted .Parts [0 ].ToEditPart (existing [0 ])},
196
+ }, nil
197
+ }
198
+
185
199
func (tc * TwitterClient ) convertToMatrix (ctx context.Context , portal * bridgev2.Portal , intent bridgev2.MatrixAPI , msg * event.XEventMessage ) (* bridgev2.ConvertedMessage , error ) {
186
200
partId := networkid .PartID ("" )
187
201
var MessageOptionalPartID * networkid.MessageOptionalPartID
0 commit comments