@@ -15,6 +15,8 @@ import (
1515 "github.com/42wim/matterbridge/bridge/helper"
1616 "github.com/42wim/matterircd/bridge"
1717 "github.com/davecgh/go-spew/spew"
18+ prefixed "github.com/matterbridge/logrus-prefixed-formatter"
19+ "github.com/sirupsen/logrus"
1820 "github.com/spf13/viper"
1921)
2022
@@ -32,6 +34,8 @@ type Matrix struct {
3234 sync.RWMutex
3335}
3436
37+ var logger * logrus.Entry
38+
3539func New (v * viper.Viper , cred bridge.Credentials , eventChan chan * bridge.Event , onWsConnect func ()) (bridge.Bridger , * mautrix.Client , error ) {
3640 m := & Matrix {
3741 credentials : cred ,
@@ -42,6 +46,20 @@ func New(v *viper.Viper, cred bridge.Credentials, eventChan chan *bridge.Event,
4246 users : make (map [id.UserID ]* User ),
4347 }
4448
49+ ourlog := logrus .New ()
50+ ourlog .SetFormatter (& prefixed.TextFormatter {
51+ PrefixPadding : 14 ,
52+ FullTimestamp : true ,
53+ })
54+ logger = ourlog .WithFields (logrus.Fields {"prefix" : "bridge/matrix" })
55+ if v .GetBool ("debug" ) {
56+ ourlog .SetLevel (logrus .DebugLevel )
57+ }
58+
59+ if v .GetBool ("trace" ) {
60+ ourlog .SetLevel (logrus .TraceLevel )
61+ }
62+
4563 mc , err := mautrix .NewClient (cred .Server , "" , "" )
4664 if err != nil {
4765 return nil , nil , err
@@ -68,8 +86,8 @@ func New(v *viper.Viper, cred bridge.Credentials, eventChan chan *bridge.Event,
6886}
6987
7088func (m * Matrix ) syncCallback (resp * mautrix.RespSync , since string ) bool {
71- // spew.Dump( resp)
72- fmt . Println ( "synccallback " , len (resp . AccountData . Events ), resp . NextBatch )
89+ logger . Trace ( "synccallback " , len ( resp . AccountData . Events ), resp . NextBatch )
90+ logger . Tracef ( "syncCallback %s " , spew . Sdump (resp ) )
7391
7492 m .firstSync = true
7593
@@ -80,9 +98,6 @@ func (m *Matrix) syncCallback(resp *mautrix.RespSync, since string) bool {
8098func (m * Matrix ) handleMatrix (onConnect func ()) {
8199 syncer := m .mc .Syncer .(* mautrix.DefaultSyncer )
82100
83- fmt .Println ("dumping" )
84- // spew.Dump(resp)
85-
86101 syncer .OnEventType (event .EventRedaction , m .handleEvent )
87102 syncer .OnEventType (event .EventMessage , m .handleEvent )
88103 syncer .OnEventType (event .StateMember , m .handleMember )
@@ -95,8 +110,8 @@ func (m *Matrix) handleMatrix(onConnect func()) {
95110 if evt .RoomID .String () == "marker" {
96111 m .firstSync = true
97112 }
98- fmt . Println ( source .String ())
99- spew .Dump (evt )
113+ logger . Tracef ( "handleMatrix source.String() %s" , source .String ())
114+ logger . Tracef ( "handleMatrix evt %s" , spew .Sdump (evt ) )
100115 })
101116
102117 syncer .OnSync (m .syncCallback )
@@ -110,7 +125,7 @@ func (m *Matrix) handleMatrix(onConnect func()) {
110125 }()
111126
112127 for ! m .firstSync {
113- fmt . Println ("syncing.." )
128+ logger . Trace ("syncing.." )
114129 time .Sleep (time .Second )
115130 }
116131
@@ -130,7 +145,7 @@ func (m *Matrix) handleMatrix(onConnect func()) {
130145
131146 for {
132147 time .Sleep (time .Second )
133- fmt . Println ("syncing.." )
148+ logger . Trace ("syncing.." )
134149
135150 if current == len (m .eventChan ) {
136151 count ++
@@ -143,7 +158,7 @@ func (m *Matrix) handleMatrix(onConnect func()) {
143158 current = len (m .eventChan )
144159 }
145160
146- fmt . Println ("sync complete" , len (m .eventChan ))
161+ logger . Trace ("sync complete " , len (m .eventChan ))
147162
148163 go onConnect ()
149164}
@@ -153,7 +168,7 @@ func (m *Matrix) handleDM(source mautrix.EventSource, ev *event.Event) {
153168 m .Lock ()
154169
155170 for userID , rooms := range * ev .Content .AsDirectChats () {
156- fmt . Printf ("direct chat %#v\n " , rooms )
171+ logger . Tracef ("direct chat %#v\n " , rooms )
157172 for _ , roomID := range rooms {
158173 if _ , ok := m .channels [roomID ]; ! ok {
159174 m .channels [roomID ] = & Channel {
@@ -195,7 +210,7 @@ func (m *Matrix) handleMember(source mautrix.EventSource, ev *event.Event) {
195210 MemberEventContent : member ,
196211 }
197212 } else if member .IsDirect {
198- fmt . Println ("found direct member" , * ev .StateKey )
213+ logger . Trace ("found direct member " , * ev .StateKey )
199214 user .IsDirect = true
200215 if _ , ok := m .channels [ev .RoomID ]; ! ok {
201216 m .channels [ev .RoomID ] = & Channel {
@@ -211,8 +226,8 @@ func (m *Matrix) handleMember(source mautrix.EventSource, ev *event.Event) {
211226 m .channels [ev .RoomID ].Members [id .UserID (* ev .StateKey )] = m .users [id .UserID (* ev .StateKey )]
212227 m .dmChannels [ev .RoomID ] = append (m .dmChannels [ev .RoomID ], id .UserID (* ev .StateKey ))
213228
214- spew .Dump (m .channels )
215- spew .Dump (m .users )
229+ logger . Tracef ( "handleMember channels %s" , spew .Sdump (m .channels ) )
230+ logger . Tracef ( "handleMember users %s" , spew .Sdump (m .users ) )
216231 }
217232 }
218233
@@ -244,7 +259,7 @@ func (m *Matrix) handleCreate(source mautrix.EventSource, ev *event.Event) {
244259}
245260
246261func (m * Matrix ) handleCanonicalAlias (source mautrix.EventSource , ev * event.Event ) {
247- fmt . Println ("running handleCanonicalAlias for" , ev )
262+ logger . Trace ("running handleCanonicalAlias for " , ev )
248263 if _ , ok := m .channels [ev .RoomID ]; ! ok {
249264 m .channels [ev .RoomID ] = & Channel {}
250265 }
@@ -343,7 +358,7 @@ func (m *Matrix) MsgUser(userID, text string) (string, error) {
343358}
344359
345360func (m * Matrix ) MsgUserThread (userID , parentID , text string ) (string , error ) {
346- fmt . Println ("sending message" , userID , parentID , text )
361+ logger . Debug ("sending message " , userID , parentID , text )
347362 invites := []id.UserID {id .UserID (userID )}
348363
349364 var roomID id.RoomID
@@ -368,11 +383,11 @@ func (m *Matrix) MsgUserThread(userID, parentID, text string) (string, error) {
368383
369384 resp , err := m .mc .CreateRoom (req )
370385 if err != nil {
371- fmt . Println ("msguserthread sending message: error" , err )
386+ logger . Error ("msguserthread sending message: error " , err )
372387 return "" , err
373388 }
374389
375- fmt . Println ("msguserthread sending message: error,resp" , err , resp )
390+ logger . Trace ("msguserthread sending message: error,resp " , err , resp )
376391
377392 m .Lock ()
378393 m .dmChannels [resp .RoomID ] = invites
@@ -389,7 +404,7 @@ func (m *Matrix) MsgChannel(channelID, text string) (string, error) {
389404}
390405
391406func (m * Matrix ) MsgChannelThread (channelID , parentID , text string ) (string , error ) {
392- fmt . Println ("msgchannelthread: sending message thread" , channelID , parentID , text )
407+ logger . Debug ("msgchannelthread: sending message thread " , channelID , parentID , text )
393408 resp , err := m .mc .SendMessageEvent (id .RoomID (channelID ), event .EventMessage , event.MessageEventContent {
394409 MsgType : "m.text" ,
395410 Body : text ,
@@ -400,7 +415,7 @@ func (m *Matrix) MsgChannelThread(channelID, parentID, text string) (string, err
400415 return "" , err
401416 }
402417
403- fmt . Println ("msgchannelthread: error,resp" , err , resp )
418+ logger . Trace ("msgchannelthread: error,resp " , err , resp )
404419
405420 return resp .EventID .String (), nil
406421}
@@ -496,7 +511,7 @@ func (m *Matrix) GetChannelUsers(channelID string) ([]*bridge.UserInfo, error) {
496511 return nil , err
497512 }
498513
499- // fmt.Println("getchannelusers ", channelID, len(resp.Joined))
514+ logger . Tracef ( "GetChannelUsers %s %d " , channelID , len (resp .Joined ))
500515
501516 for user := range resp .Joined {
502517 users = append (users , m .createUser (user ))
@@ -508,9 +523,8 @@ func (m *Matrix) GetChannelUsers(channelID string) ([]*bridge.UserInfo, error) {
508523func (m * Matrix ) GetUsers () []* bridge.UserInfo {
509524 var users []* bridge.UserInfo
510525
511- fmt .Println ("GetUsers()" , m .users )
512-
513- spew .Dump (m .users )
526+ logger .Tracef ("GetUsers %s" , m .users )
527+ logger .Tracef ("GetUsers %s" , spew .Sdump (m .users ))
514528
515529 m .RLock ()
516530 for userID := range m .users {
@@ -519,7 +533,7 @@ func (m *Matrix) GetUsers() []*bridge.UserInfo {
519533
520534 m .RUnlock ()
521535
522- spew .Dump (users )
536+ logger . Tracef ( "GetUsers users %s" , spew .Sdump (users ) )
523537
524538 return users
525539}
0 commit comments