@@ -8,26 +8,27 @@ import (
8
8
"sync"
9
9
"time"
10
10
11
+ "maunium.net/go/mautrix"
12
+ "maunium.net/go/mautrix/event"
13
+ "maunium.net/go/mautrix/id"
14
+
11
15
"github.com/42wim/matterbridge/bridge/helper"
12
16
"github.com/42wim/matterircd/bridge"
13
17
"github.com/davecgh/go-spew/spew"
14
18
"github.com/spf13/viper"
15
- "maunium.net/go/mautrix"
16
- "maunium.net/go/mautrix/event"
17
- "maunium.net/go/mautrix/id"
18
19
)
19
20
20
21
type Matrix struct {
21
22
mc * mautrix.Client
22
23
credentials bridge.Credentials
23
- quitChan []chan struct {}
24
- eventChan chan * bridge.Event
25
- v * viper.Viper
26
- connected bool
27
- firstSync bool
28
- dmChannels map [id.RoomID ][]id.UserID
29
- channels map [id.RoomID ]* Channel
30
- users map [id.UserID ]* User
24
+ // quitChan []chan struct{}
25
+ eventChan chan * bridge.Event
26
+ v * viper.Viper
27
+ connected bool
28
+ firstSync bool
29
+ dmChannels map [id.RoomID ][]id.UserID
30
+ channels map [id.RoomID ]* Channel
31
+ users map [id.UserID ]* User
31
32
sync.RWMutex
32
33
}
33
34
@@ -68,14 +69,15 @@ func New(v *viper.Viper, cred bridge.Credentials, eventChan chan *bridge.Event,
68
69
}
69
70
70
71
func (m * Matrix ) syncCallback (resp * mautrix.RespSync , since string ) bool {
71
- //spew.Dump(resp)
72
+ // spew.Dump(resp)
72
73
fmt .Println ("synccallback" , len (resp .AccountData .Events ), resp .NextBatch )
73
74
74
75
m .firstSync = true
75
76
76
77
return true
77
78
}
78
79
80
+ //nolint:funlen,forcetypeassert
79
81
func (m * Matrix ) handleMatrix (onConnect func ()) {
80
82
syncer := m .mc .Syncer .(* mautrix.DefaultSyncer )
81
83
@@ -87,7 +89,7 @@ func (m *Matrix) handleMatrix(onConnect func()) {
87
89
syncer .OnEventType (event .StateMember , m .handleMember )
88
90
syncer .OnEventType (event .StateCreate , m .handleCreate )
89
91
syncer .OnEventType (event .StateRoomName , m .handleRoomName )
90
- //syncer.OnEventType(event.AccountDataDirectChats, m.handleDM)
92
+ // syncer.OnEventType(event.AccountDataDirectChats, m.handleDM)
91
93
syncer .OnEventType (event .StateCanonicalAlias , m .handleCanonicalAlias )
92
94
syncer .OnEvent (func (source mautrix.EventSource , evt * event.Event ) {
93
95
// sync is almost complete
@@ -147,6 +149,7 @@ func (m *Matrix) handleMatrix(onConnect func()) {
147
149
go onConnect ()
148
150
}
149
151
152
+ //nolint:unparam
150
153
func (m * Matrix ) handleDM (source mautrix.EventSource , ev * event.Event ) {
151
154
m .Lock ()
152
155
@@ -176,7 +179,7 @@ func (m *Matrix) handleDM(source mautrix.EventSource, ev *event.Event) {
176
179
}
177
180
178
181
m .channels [roomID ].Unlock ()
179
- //m.dmChannels[room] = []id.UserID{u}
182
+ // m.dmChannels[room] = []id.UserID{u}
180
183
}
181
184
}
182
185
@@ -211,7 +214,6 @@ func (m *Matrix) handleMember(source mautrix.EventSource, ev *event.Event) {
211
214
212
215
spew .Dump (m .channels )
213
216
spew .Dump (m .users )
214
-
215
217
}
216
218
}
217
219
@@ -253,7 +255,7 @@ func (m *Matrix) handleCanonicalAlias(source mautrix.EventSource, ev *event.Even
253
255
m .channels [ev .RoomID ].AltAliases = ev .Content .AsCanonicalAlias ().AltAliases
254
256
m .channels [ev .RoomID ].Unlock ()
255
257
256
- //m.mc.JoinedMembers(ev.RoomID)
258
+ // m.mc.JoinedMembers(ev.RoomID)
257
259
}
258
260
259
261
func (m * Matrix ) handleEvent (source mautrix.EventSource , ev * event.Event ) {
@@ -270,35 +272,35 @@ func (m *Matrix) handleEvent(source mautrix.EventSource, ev *event.Event) {
270
272
m .RUnlock ()
271
273
272
274
if ok {
273
- event := & bridge.Event {
275
+ event := & bridge.Event { //nolint:gocritic
274
276
Type : "direct_message" ,
275
277
Data : & bridge.DirectMessageEvent {
276
278
Text : text ,
277
279
ChannelID : ev .RoomID .String (),
278
280
Sender : ghost ,
279
281
Receiver : m .GetMe (),
280
- //Files: m.getFilesFromData(data),
282
+ // Files: m.getFilesFromData(data),
281
283
MessageID : string (ev .ID ),
282
- //Event: rmsg.Event,
283
- //ParentID: mxEvent
284
+ // Event: rmsg.Event,
285
+ // ParentID: mxEvent
284
286
},
285
287
}
286
288
287
289
m .eventChan <- event
288
290
return
289
291
}
290
292
291
- event := & bridge.Event {
293
+ event := & bridge.Event { //nolint:gocritic
292
294
Type : "channel_message" ,
293
295
Data : & bridge.ChannelMessageEvent {
294
296
Text : text ,
295
297
ChannelID : ev .RoomID .String (),
296
298
Sender : ghost ,
297
299
ChannelType : "P" ,
298
- //Files: m.getFilesFromData(data),
300
+ // Files: m.getFilesFromData(data),
299
301
MessageID : string (ev .ID ),
300
- //Event: rmsg.Event,
301
- //ParentID: mxEvent
302
+ // Event: rmsg.Event,
303
+ // ParentID: mxEvent
302
304
},
303
305
}
304
306
@@ -374,7 +376,7 @@ func (m *Matrix) MsgUserThread(userID, parentID, text string) (string, error) {
374
376
fmt .Println ("msguserthread sending message: error,resp" , err , resp )
375
377
376
378
m .Lock ()
377
- m .dmChannels [id . RoomID ( resp .RoomID ) ] = invites
379
+ m .dmChannels [resp .RoomID ] = invites
378
380
m .Unlock ()
379
381
380
382
roomID = resp .RoomID
@@ -432,7 +434,7 @@ func (m *Matrix) SetTopic(channelID, text string) error {
432
434
433
435
func (m * Matrix ) StatusUser (userID string ) (string , error ) {
434
436
return "" , nil
435
- //return m.mc.GetStatus(userID), nil
437
+ // return m.mc.GetStatus(userID), nil
436
438
}
437
439
438
440
func (m * Matrix ) StatusUsers () (map [string ]string , error ) {
@@ -473,7 +475,7 @@ func (m *Matrix) SetStatus(status string) error {
473
475
474
476
func (m * Matrix ) Nick (name string ) error {
475
477
return nil
476
- //return m.mc.UpdateUserNick(name)
478
+ // return m.mc.UpdateUserNick(name)
477
479
}
478
480
479
481
func (m * Matrix ) GetChannelName (channelID string ) string {
@@ -487,16 +489,15 @@ func (m *Matrix) GetChannelName(channelID string) string {
487
489
}
488
490
489
491
func (m * Matrix ) GetChannelUsers (channelID string ) ([]* bridge.UserInfo , error ) {
490
-
491
- //return m.channels[id.RoomID(channelID)].Members
492
+ // return m.channels[id.RoomID(channelID)].Members
492
493
var users []* bridge.UserInfo
493
494
494
495
resp , err := m .mc .JoinedMembers (id .RoomID (channelID ))
495
496
if err != nil {
496
497
return nil , err
497
498
}
498
499
499
- //fmt.Println("getchannelusers", channelID, len(resp.Joined))
500
+ // fmt.Println("getchannelusers", channelID, len(resp.Joined))
500
501
501
502
for user := range resp .Joined {
502
503
users = append (users , m .createUser (user ))
@@ -514,7 +515,7 @@ func (m *Matrix) GetUsers() []*bridge.UserInfo {
514
515
515
516
m .RLock ()
516
517
for userID := range m .users {
517
- users = append (users , m .createUser (id . UserID ( userID ) ))
518
+ users = append (users , m .createUser (userID ))
518
519
}
519
520
520
521
m .RUnlock ()
@@ -616,19 +617,20 @@ func (m *Matrix) createUser(userID id.UserID) *bridge.UserInfo {
616
617
User : userID .String (),
617
618
Real : displayName ,
618
619
Host : host ,
619
- //Roles: mmuser.Roles,
620
+ // Roles: mmuser.Roles,
620
621
Ghost : true ,
621
622
Me : me ,
622
- //TeamID: teamID,
623
+ // TeamID: teamID,
623
624
Username : nick ,
624
- //FirstName: mmuser.FirstName,
625
- //LastName: mmuser.LastName,
626
- //MentionKeys: strings.Split(mentionkeys, ","),
625
+ // FirstName: mmuser.FirstName,
626
+ // LastName: mmuser.LastName,
627
+ // MentionKeys: strings.Split(mentionkeys, ","),
627
628
}
628
629
629
630
return info
630
631
}
631
632
633
+ //nolint:unused
632
634
func isValidNick (s string ) bool {
633
635
/* IRC RFC ([0] - see below) mentions a limit of 9 chars for
634
636
* IRC nicks, but modern clients allow more than that. Let's
@@ -668,6 +670,8 @@ func isValidNick(s string) bool {
668
670
// maybeShorten returns a prefix of msg that is approximately newLen
669
671
// characters long, followed by "...". Words that start with uncounted
670
672
// are included in the result but are not reckoned against newLen.
673
+ //
674
+ //nolint:unused
671
675
func maybeShorten (msg string , newLen int , uncounted string , unicode bool ) string {
672
676
if newLen == 0 || len (msg ) < newLen {
673
677
return msg
@@ -723,8 +727,6 @@ func (m *Matrix) GetPostsSince(channelID string, since int64) interface{} {
723
727
}
724
728
725
729
func (m * Matrix ) UpdateLastViewed (channelID string ) {
726
- return
727
-
728
730
}
729
731
730
732
func (m * Matrix ) UpdateLastViewedUser (userID string ) error {
0 commit comments