MCPcopy
hub / github.com/42wim/matterbridge / Send

Method Send

bridge/gitter/gitter.go:94–141  ·  view source on GitHub ↗
(msg config.Message)

Source from the content-addressed store, hash-verified

92}
93
94func (b *Bgitter) Send(msg config.Message) (string, error) {
95 b.Log.Debugf("=> Receiving %#v", msg)
96 roomID := b.getRoomID(msg.Channel)
97 if roomID == "" {
98 b.Log.Errorf("Could not find roomID for %v", msg.Channel)
99 return "", nil
100 }
101
102 // Delete message
103 if msg.Event == config.EventMsgDelete {
104 if msg.ID == "" {
105 return "", nil
106 }
107 // gitter has no delete message api so we edit message to ""
108 _, err := b.c.UpdateMessage(roomID, msg.ID, "")
109 if err != nil {
110 return "", err
111 }
112 return "", nil
113 }
114
115 // Upload a file (in gitter case send the upload URL because gitter has no native upload support)
116 if msg.Extra != nil {
117 for _, rmsg := range helper.HandleExtra(&msg, b.General) {
118 b.c.SendMessage(roomID, rmsg.Username+rmsg.Text)
119 }
120 if len(msg.Extra["file"]) > 0 {
121 return b.handleUploadFile(&msg, roomID)
122 }
123 }
124
125 // Edit message
126 if msg.ID != "" {
127 b.Log.Debugf("updating message with id %s", msg.ID)
128 _, err := b.c.UpdateMessage(roomID, msg.ID, msg.Username+msg.Text)
129 if err != nil {
130 return "", err
131 }
132 return "", nil
133 }
134
135 // Post normal message
136 resp, err := b.c.SendMessage(roomID, msg.Username+msg.Text)
137 if err != nil {
138 return "", err
139 }
140 return resp.ID, nil
141}
142
143func (b *Bgitter) getRoomID(channel string) string {
144 for _, v := range b.Rooms {

Callers

nothing calls this directly

Calls 4

getRoomIDMethod · 0.95
handleUploadFileMethod · 0.95
HandleExtraFunction · 0.92
SendMessageMethod · 0.80

Tested by

no test coverage detected