summaryrefslogtreecommitdiffstats
path: root/matterclient/messages.go
diff options
context:
space:
mode:
authorWim <wim@42.be>2023-08-05 20:43:19 +0200
committerGitHub <noreply@github.com>2023-08-05 20:43:19 +0200
commit56e7bd01ca09ad52b0c4f48f146a20a4f1b78696 (patch)
treeb1355645342667209263cbd355dc0b4254f1e8fe /matterclient/messages.go
parent9459495484d6e06a3d46de64fccd8d06f7ccc72c (diff)
downloadmatterbridge-msglm-master.tar.gz
matterbridge-msglm-master.tar.bz2
matterbridge-msglm-master.zip
Update dependencies and remove old matterclient lib (#2067)HEADmaster
Diffstat (limited to 'matterclient/messages.go')
-rw-r--r--matterclient/messages.go207
1 files changed, 0 insertions, 207 deletions
diff --git a/matterclient/messages.go b/matterclient/messages.go
deleted file mode 100644
index 81c3ecbe..00000000
--- a/matterclient/messages.go
+++ /dev/null
@@ -1,207 +0,0 @@
-package matterclient
-
-import (
- "strings"
-
- "github.com/mattermost/mattermost-server/v5/model"
-)
-
-func (m *MMClient) parseActionPost(rmsg *Message) {
- // add post to cache, if it already exists don't relay this again.
- // this should fix reposts
- if ok, _ := m.lruCache.ContainsOrAdd(digestString(rmsg.Raw.Data["post"].(string)), true); ok && rmsg.Raw.Event != model.WEBSOCKET_EVENT_POST_DELETED {
- m.logger.Debugf("message %#v in cache, not processing again", rmsg.Raw.Data["post"].(string))
- rmsg.Text = ""
- return
- }
- data := model.PostFromJson(strings.NewReader(rmsg.Raw.Data["post"].(string)))
- // we don't have the user, refresh the userlist
- if m.GetUser(data.UserId) == nil {
- m.logger.Infof("User '%v' is not known, ignoring message '%#v'",
- data.UserId, data)
- return
- }
- rmsg.Username = m.GetUserName(data.UserId)
- rmsg.Channel = m.GetChannelName(data.ChannelId)
- rmsg.UserID = data.UserId
- rmsg.Type = data.Type
- teamid, _ := rmsg.Raw.Data["team_id"].(string)
- // edit messsages have no team_id for some reason
- if teamid == "" {
- // we can find the team_id from the channelid
- teamid = m.GetChannelTeamId(data.ChannelId)
- rmsg.Raw.Data["team_id"] = teamid
- }
- if teamid != "" {
- rmsg.Team = m.GetTeamName(teamid)
- }
- // direct message
- if rmsg.Raw.Data["channel_type"] == "D" {
- rmsg.Channel = m.GetUser(data.UserId).Username
- }
- rmsg.Text = data.Message
- rmsg.Post = data
-}
-
-func (m *MMClient) parseMessage(rmsg *Message) {
- switch rmsg.Raw.Event {
- case model.WEBSOCKET_EVENT_POSTED, model.WEBSOCKET_EVENT_POST_EDITED, model.WEBSOCKET_EVENT_POST_DELETED:
- m.parseActionPost(rmsg)
- case "user_updated":
- user := rmsg.Raw.Data["user"].(map[string]interface{})
- if _, ok := user["id"].(string); ok {
- m.UpdateUser(user["id"].(string))
- }
- case "group_added":
- if err := m.UpdateChannels(); err != nil {
- m.logger.Errorf("failed to update channels: %#v", err)
- }
- /*
- case model.ACTION_USER_REMOVED:
- m.handleWsActionUserRemoved(&rmsg)
- case model.ACTION_USER_ADDED:
- m.handleWsActionUserAdded(&rmsg)
- */
- }
-}
-
-func (m *MMClient) parseResponse(rmsg model.WebSocketResponse) {
- if rmsg.Data != nil {
- // ping reply
- if rmsg.Data["text"].(string) == "pong" {
- m.WsPingChan <- &rmsg
- }
- }
-}
-
-func (m *MMClient) DeleteMessage(postId string) error { //nolint:golint
- _, resp := m.Client.DeletePost(postId)
- if resp.Error != nil {
- return resp.Error
- }
- return nil
-}
-
-func (m *MMClient) EditMessage(postId string, text string) (string, error) { //nolint:golint
- post := &model.Post{Message: text, Id: postId}
- res, resp := m.Client.UpdatePost(postId, post)
- if resp.Error != nil {
- return "", resp.Error
- }
- return res.Id, nil
-}
-
-func (m *MMClient) GetFileLinks(filenames []string) []string {
- uriScheme := "https://"
- if m.NoTLS {
- uriScheme = "http://"
- }
-
- var output []string
- for _, f := range filenames {
- res, resp := m.Client.GetFileLink(f)
- if resp.Error != nil {
- // public links is probably disabled, create the link ourselves
- output = append(output, uriScheme+m.Credentials.Server+model.API_URL_SUFFIX_V4+"/files/"+f)
- continue
- }
- output = append(output, res)
- }
- return output
-}
-
-func (m *MMClient) GetPosts(channelId string, limit int) *model.PostList { //nolint:golint
- res, resp := m.Client.GetPostsForChannel(channelId, 0, limit, "", true)
- if resp.Error != nil {
- return nil
- }
- return res
-}
-
-func (m *MMClient) GetPostsSince(channelId string, time int64) *model.PostList { //nolint:golint
- res, resp := m.Client.GetPostsSince(channelId, time, true)
- if resp.Error != nil {
- return nil
- }
- return res
-}
-
-func (m *MMClient) GetPublicLink(filename string) string {
- res, resp := m.Client.GetFileLink(filename)
- if resp.Error != nil {
- return ""
- }
- return res
-}
-
-func (m *MMClient) GetPublicLinks(filenames []string) []string {
- var output []string
- for _, f := range filenames {
- res, resp := m.Client.GetFileLink(f)
- if resp.Error != nil {
- continue
- }
- output = append(output, res)
- }
- return output
-}
-
-func (m *MMClient) PostMessage(channelId string, text string, rootId string) (string, error) { //nolint:golint
- post := &model.Post{ChannelId: channelId, Message: text, RootId: rootId}
- res, resp := m.Client.CreatePost(post)
- if resp.Error != nil {
- return "", resp.Error
- }
- return res.Id, nil
-}
-
-func (m *MMClient) PostMessageWithFiles(channelId string, text string, rootId string, fileIds []string) (string, error) { //nolint:golint
- post := &model.Post{ChannelId: channelId, Message: text, RootId: rootId, FileIds: fileIds}
- res, resp := m.Client.CreatePost(post)
- if resp.Error != nil {
- return "", resp.Error
- }
- return res.Id, nil
-}
-
-func (m *MMClient) SearchPosts(query string) *model.PostList {
- res, resp := m.Client.SearchPosts(m.Team.Id, query, false)
- if resp.Error != nil {
- return nil
- }
- return res
-}
-
-// SendDirectMessage sends a direct message to specified user
-func (m *MMClient) SendDirectMessage(toUserId string, msg string, rootId string) { //nolint:golint
- m.SendDirectMessageProps(toUserId, msg, rootId, nil)
-}
-
-func (m *MMClient) SendDirectMessageProps(toUserId string, msg string, rootId string, props map[string]interface{}) { //nolint:golint
- m.logger.Debugf("SendDirectMessage to %s, msg %s", toUserId, msg)
- // create DM channel (only happens on first message)
- _, resp := m.Client.CreateDirectChannel(m.User.Id, toUserId)
- if resp.Error != nil {
- m.logger.Debugf("SendDirectMessage to %#v failed: %s", toUserId, resp.Error)
- return
- }
- channelName := model.GetDMNameFromIds(toUserId, m.User.Id)
-
- // update our channels
- if err := m.UpdateChannels(); err != nil {
- m.logger.Errorf("failed to update channels: %#v", err)
- }
-
- // build & send the message
- msg = strings.Replace(msg, "\r", "", -1)
- post := &model.Post{ChannelId: m.GetChannelId(channelName, m.Team.Id), Message: msg, RootId: rootId, Props: props}
- m.Client.CreatePost(post)
-}
-
-func (m *MMClient) UploadFile(data []byte, channelId string, filename string) (string, error) { //nolint:golint
- f, resp := m.Client.UploadFile(data, channelId, filename)
- if resp.Error != nil {
- return "", resp.Error
- }
- return f.FileInfos[0].Id, nil
-}