mirror of
				https://github.com/42wim/matterbridge.git
				synced 2025-10-31 13:57:25 +01:00 
			
		
		
		
	Update vendor matterbridge/gomatrix fork (#928)
This commit is contained in:
		
							parent
							
								
									bad3b83d33
								
							
						
					
					
						commit
						0b9bc18236
					
				
							
								
								
									
										2
									
								
								go.mod
									
									
									
									
									
								
							
							
						
						
									
										2
									
								
								go.mod
									
									
									
									
									
								
							| @ -26,7 +26,7 @@ require ( | ||||
| 	github.com/lrstanley/girc v0.0.0-20190801035559-4fc93959e1a7 | ||||
| 	github.com/matterbridge/Rocket.Chat.Go.SDK v0.0.0-20190210153444-cc9d05784d5d | ||||
| 	github.com/matterbridge/go-xmpp v0.0.0-20180529212104-cd19799fba91 | ||||
| 	github.com/matterbridge/gomatrix v0.0.0-20190102230110-6f9631ca6dea | ||||
| 	github.com/matterbridge/gomatrix v0.0.0-20191026211822-6fc7accd00ca | ||||
| 	github.com/matterbridge/gozulipbot v0.0.0-20190212232658-7aa251978a18 | ||||
| 	github.com/matterbridge/logrus-prefixed-formatter v0.0.0-20180806162718-01618749af61 | ||||
| 	github.com/mattermost/mattermost-server v5.5.0+incompatible | ||||
|  | ||||
							
								
								
									
										4
									
								
								go.sum
									
									
									
									
									
								
							
							
						
						
									
										4
									
								
								go.sum
									
									
									
									
									
								
							| @ -125,8 +125,8 @@ github.com/matterbridge/discordgo v0.0.0-20190818085008-57c6e0fc2f40 h1:OJmjOa1r | ||||
| github.com/matterbridge/discordgo v0.0.0-20190818085008-57c6e0fc2f40/go.mod h1:O9S4p+ofTFwB02em7jkpkV8M3R0/PUVOwN61zSZ0r4Q= | ||||
| github.com/matterbridge/go-xmpp v0.0.0-20180529212104-cd19799fba91 h1:KzDEcy8eDbTx881giW8a6llsAck3e2bJvMyKvh1IK+k= | ||||
| github.com/matterbridge/go-xmpp v0.0.0-20180529212104-cd19799fba91/go.mod h1:ECDRehsR9TYTKCAsRS8/wLeOk6UUqDydw47ln7wG41Q= | ||||
| github.com/matterbridge/gomatrix v0.0.0-20190102230110-6f9631ca6dea h1:kaADGqpK4gGO2BpzEyJrBxq2Jc57Rsar4i2EUxcACUc= | ||||
| github.com/matterbridge/gomatrix v0.0.0-20190102230110-6f9631ca6dea/go.mod h1:+jWeaaUtXQbBRdKYWfjW6JDDYiI2XXE+3NnTjW5kg8g= | ||||
| github.com/matterbridge/gomatrix v0.0.0-20191026211822-6fc7accd00ca h1:3ypqEpFpt6vg5Sv2xxA8/v4WiSOnWMXW7DqxTxpM4XI= | ||||
| github.com/matterbridge/gomatrix v0.0.0-20191026211822-6fc7accd00ca/go.mod h1:+jWeaaUtXQbBRdKYWfjW6JDDYiI2XXE+3NnTjW5kg8g= | ||||
| github.com/matterbridge/gozulipbot v0.0.0-20190212232658-7aa251978a18 h1:fLhwXtWGtfTgZVxHG1lcKjv+re7dRwyyuYFNu69xdho= | ||||
| github.com/matterbridge/gozulipbot v0.0.0-20190212232658-7aa251978a18/go.mod h1:yAjnZ34DuDyPHMPHHjOsTk/FefW4JJjoMMCGt/8uuQA= | ||||
| github.com/matterbridge/logrus-prefixed-formatter v0.0.0-20180806162718-01618749af61 h1:R/MgM/eUyRBQx2FiH6JVmXck8PaAuKfe2M1tWIzW7nE= | ||||
|  | ||||
							
								
								
									
										2
									
								
								vendor/github.com/matterbridge/gomatrix/.travis.yml
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										2
									
								
								vendor/github.com/matterbridge/gomatrix/.travis.yml
									
									
									
										generated
									
									
										vendored
									
									
								
							| @ -1,6 +1,6 @@ | ||||
| language: go | ||||
| go: | ||||
|  - 1.8 | ||||
|  - 1.10.x | ||||
| install: | ||||
|  - go get github.com/golang/lint/golint | ||||
|  - go get github.com/fzipp/gocyclo | ||||
|  | ||||
							
								
								
									
										157
									
								
								vendor/github.com/matterbridge/gomatrix/client.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										157
									
								
								vendor/github.com/matterbridge/gomatrix/client.go
									
									
									
										generated
									
									
										vendored
									
									
								
							| @ -13,6 +13,7 @@ import ( | ||||
| 	"net/url" | ||||
| 	"path" | ||||
| 	"strconv" | ||||
| 	"strings" | ||||
| 	"sync" | ||||
| 	"time" | ||||
| ) | ||||
| @ -38,6 +39,7 @@ type Client struct { | ||||
| 
 | ||||
| // HTTPError An HTTP Error response, which may wrap an underlying native Go Error. | ||||
| type HTTPError struct { | ||||
| 	Contents     []byte | ||||
| 	WrappedError error | ||||
| 	Message      string | ||||
| 	Code         int | ||||
| @ -48,7 +50,7 @@ func (e HTTPError) Error() string { | ||||
| 	if e.WrappedError != nil { | ||||
| 		wrappedErrMsg = e.WrappedError.Error() | ||||
| 	} | ||||
| 	return fmt.Sprintf("msg=%s code=%d wrapped=%s", e.Message, e.Code, wrappedErrMsg) | ||||
| 	return fmt.Sprintf("contents=%v msg=%s code=%d wrapped=%s", e.Contents, e.Message, e.Code, wrappedErrMsg) | ||||
| } | ||||
| 
 | ||||
| // BuildURL builds a URL with the Client's homserver/prefix/access_token set already. | ||||
| @ -68,6 +70,10 @@ func (cli *Client) BuildBaseURL(urlPath ...string) string { | ||||
| 	parts := []string{hsURL.Path} | ||||
| 	parts = append(parts, urlPath...) | ||||
| 	hsURL.Path = path.Join(parts...) | ||||
| 	// Manually add the trailing slash back to the end of the path if it's explicitly needed | ||||
| 	if strings.HasSuffix(urlPath[len(urlPath)-1], "/") { | ||||
| 		hsURL.Path = hsURL.Path + "/" | ||||
| 	} | ||||
| 	query := hsURL.Query() | ||||
| 	if cli.AccessToken != "" { | ||||
| 		query.Set("access_token", cli.AccessToken) | ||||
| @ -178,27 +184,27 @@ func (cli *Client) StopSync() { | ||||
| } | ||||
| 
 | ||||
| // MakeRequest makes a JSON HTTP request to the given URL. | ||||
| // If "resBody" is not nil, the response body will be json.Unmarshalled into it. | ||||
| // The response body will be stream decoded into an interface. This will automatically stop if the response | ||||
| // body is nil. | ||||
| // | ||||
| // Returns the HTTP body as bytes on 2xx with a nil error. Returns an error if the response is not 2xx along | ||||
| // with the HTTP body bytes if it got that far. This error is an HTTPError which includes the returned | ||||
| // HTTP status code and possibly a RespError as the WrappedError, if the HTTP body could be decoded as a RespError. | ||||
| func (cli *Client) MakeRequest(method string, httpURL string, reqBody interface{}, resBody interface{}) ([]byte, error) { | ||||
| // Returns an error if the response is not 2xx along with the HTTP body bytes if it got that far. This error is | ||||
| // an HTTPError which includes the returned HTTP status code, byte contents of the response body and possibly a | ||||
| // RespError as the WrappedError, if the HTTP body could be decoded as a RespError. | ||||
| func (cli *Client) MakeRequest(method string, httpURL string, reqBody interface{}, resBody interface{}) error { | ||||
| 	var req *http.Request | ||||
| 	var err error | ||||
| 	if reqBody != nil { | ||||
| 		var jsonStr []byte | ||||
| 		jsonStr, err = json.Marshal(reqBody) | ||||
| 		if err != nil { | ||||
| 			return nil, err | ||||
| 		buf := new(bytes.Buffer) | ||||
| 		if err := json.NewEncoder(buf).Encode(reqBody); err != nil { | ||||
| 			return err | ||||
| 		} | ||||
| 		req, err = http.NewRequest(method, httpURL, bytes.NewBuffer(jsonStr)) | ||||
| 		req, err = http.NewRequest(method, httpURL, buf) | ||||
| 	} else { | ||||
| 		req, err = http.NewRequest(method, httpURL, nil) | ||||
| 	} | ||||
| 
 | ||||
| 	if err != nil { | ||||
| 		return nil, err | ||||
| 		return err | ||||
| 	} | ||||
| 	req.Header.Set("Content-Type", "application/json") | ||||
| 	res, err := cli.Client.Do(req) | ||||
| @ -206,10 +212,14 @@ func (cli *Client) MakeRequest(method string, httpURL string, reqBody interface{ | ||||
| 		defer res.Body.Close() | ||||
| 	} | ||||
| 	if err != nil { | ||||
| 		return nil, err | ||||
| 		return err | ||||
| 	} | ||||
| 	contents, err := ioutil.ReadAll(res.Body) | ||||
| 	if res.StatusCode/100 != 2 { // not 2xx | ||||
| 		contents, err := ioutil.ReadAll(res.Body) | ||||
| 		if err != nil { | ||||
| 			return err | ||||
| 		} | ||||
| 
 | ||||
| 		var wrap error | ||||
| 		var respErr RespError | ||||
| 		if _ = json.Unmarshal(contents, &respErr); respErr.ErrCode != "" { | ||||
| @ -223,29 +233,25 @@ func (cli *Client) MakeRequest(method string, httpURL string, reqBody interface{ | ||||
| 			msg = msg + ": " + string(contents) | ||||
| 		} | ||||
| 
 | ||||
| 		return contents, HTTPError{ | ||||
| 		return HTTPError{ | ||||
| 			Contents:     contents, | ||||
| 			Code:         res.StatusCode, | ||||
| 			Message:      msg, | ||||
| 			WrappedError: wrap, | ||||
| 		} | ||||
| 	} | ||||
| 	if err != nil { | ||||
| 		return nil, err | ||||
| 
 | ||||
| 	if resBody != nil && res.Body != nil { | ||||
| 		return json.NewDecoder(res.Body).Decode(&resBody) | ||||
| 	} | ||||
| 
 | ||||
| 	if resBody != nil { | ||||
| 		if err = json.Unmarshal(contents, &resBody); err != nil { | ||||
| 			return nil, err | ||||
| 		} | ||||
| 	} | ||||
| 
 | ||||
| 	return contents, nil | ||||
| 	return nil | ||||
| } | ||||
| 
 | ||||
| // CreateFilter makes an HTTP request according to http://matrix.org/docs/spec/client_server/r0.2.0.html#post-matrix-client-r0-user-userid-filter | ||||
| func (cli *Client) CreateFilter(filter json.RawMessage) (resp *RespCreateFilter, err error) { | ||||
| 	urlPath := cli.BuildURL("user", cli.UserID, "filter") | ||||
| 	_, err = cli.MakeRequest("POST", urlPath, &filter, &resp) | ||||
| 	err = cli.MakeRequest("POST", urlPath, &filter, &resp) | ||||
| 	return | ||||
| } | ||||
| 
 | ||||
| @ -267,13 +273,12 @@ func (cli *Client) SyncRequest(timeout int, since, filterID string, fullState bo | ||||
| 		query["full_state"] = "true" | ||||
| 	} | ||||
| 	urlPath := cli.BuildURLWithQuery([]string{"sync"}, query) | ||||
| 	_, err = cli.MakeRequest("GET", urlPath, nil, &resp) | ||||
| 	err = cli.MakeRequest("GET", urlPath, nil, &resp) | ||||
| 	return | ||||
| } | ||||
| 
 | ||||
| func (cli *Client) register(u string, req *ReqRegister) (resp *RespRegister, uiaResp *RespUserInteractive, err error) { | ||||
| 	var bodyBytes []byte | ||||
| 	bodyBytes, err = cli.MakeRequest("POST", u, req, nil) | ||||
| 	err = cli.MakeRequest("POST", u, req, &resp) | ||||
| 	if err != nil { | ||||
| 		httpErr, ok := err.(HTTPError) | ||||
| 		if !ok { // network error | ||||
| @ -281,13 +286,10 @@ func (cli *Client) register(u string, req *ReqRegister) (resp *RespRegister, uia | ||||
| 		} | ||||
| 		if httpErr.Code == 401 { | ||||
| 			// body should be RespUserInteractive, if it isn't, fail with the error | ||||
| 			err = json.Unmarshal(bodyBytes, &uiaResp) | ||||
| 			err = json.Unmarshal(httpErr.Contents, &uiaResp) | ||||
| 			return | ||||
| 		} | ||||
| 		return | ||||
| 	} | ||||
| 	// body should be RespRegister | ||||
| 	err = json.Unmarshal(bodyBytes, &resp) | ||||
| 	return | ||||
| } | ||||
| 
 | ||||
| @ -351,7 +353,7 @@ func (cli *Client) RegisterDummy(req *ReqRegister) (*RespRegister, error) { | ||||
| // This does not set credentials on this client instance. See SetCredentials() instead. | ||||
| func (cli *Client) Login(req *ReqLogin) (resp *RespLogin, err error) { | ||||
| 	urlPath := cli.BuildURL("login") | ||||
| 	_, err = cli.MakeRequest("POST", urlPath, req, &resp) | ||||
| 	err = cli.MakeRequest("POST", urlPath, req, &resp) | ||||
| 	return | ||||
| } | ||||
| 
 | ||||
| @ -359,14 +361,14 @@ func (cli *Client) Login(req *ReqLogin) (resp *RespLogin, err error) { | ||||
| // This does not clear the credentials from the client instance. See ClearCredentials() instead. | ||||
| func (cli *Client) Logout() (resp *RespLogout, err error) { | ||||
| 	urlPath := cli.BuildURL("logout") | ||||
| 	_, err = cli.MakeRequest("POST", urlPath, nil, &resp) | ||||
| 	err = cli.MakeRequest("POST", urlPath, nil, &resp) | ||||
| 	return | ||||
| } | ||||
| 
 | ||||
| // Versions returns the list of supported Matrix versions on this homeserver. See http://matrix.org/docs/spec/client_server/r0.2.0.html#get-matrix-client-versions | ||||
| func (cli *Client) Versions() (resp *RespVersions, err error) { | ||||
| 	urlPath := cli.BuildBaseURL("_matrix", "client", "versions") | ||||
| 	_, err = cli.MakeRequest("GET", urlPath, nil, &resp) | ||||
| 	err = cli.MakeRequest("GET", urlPath, nil, &resp) | ||||
| 	return | ||||
| } | ||||
| 
 | ||||
| @ -383,21 +385,21 @@ func (cli *Client) JoinRoom(roomIDorAlias, serverName string, content interface{ | ||||
| 	} else { | ||||
| 		urlPath = cli.BuildURL("join", roomIDorAlias) | ||||
| 	} | ||||
| 	_, err = cli.MakeRequest("POST", urlPath, content, &resp) | ||||
| 	err = cli.MakeRequest("POST", urlPath, content, &resp) | ||||
| 	return | ||||
| } | ||||
| 
 | ||||
| // GetDisplayName returns the display name of the user from the specified MXID. See https://matrix.org/docs/spec/client_server/r0.2.0.html#get-matrix-client-r0-profile-userid-displayname | ||||
| func (cli *Client) GetDisplayName(mxid string) (resp *RespUserDisplayName, err error) { | ||||
| 	urlPath := cli.BuildURL("profile", mxid, "displayname") | ||||
| 	_, err = cli.MakeRequest("GET", urlPath, nil, &resp) | ||||
| 	err = cli.MakeRequest("GET", urlPath, nil, &resp) | ||||
| 	return | ||||
| } | ||||
| 
 | ||||
| // GetOwnDisplayName returns the user's display name. See https://matrix.org/docs/spec/client_server/r0.2.0.html#get-matrix-client-r0-profile-userid-displayname | ||||
| func (cli *Client) GetOwnDisplayName() (resp *RespUserDisplayName, err error) { | ||||
| 	urlPath := cli.BuildURL("profile", cli.UserID, "displayname") | ||||
| 	_, err = cli.MakeRequest("GET", urlPath, nil, &resp) | ||||
| 	err = cli.MakeRequest("GET", urlPath, nil, &resp) | ||||
| 	return | ||||
| } | ||||
| 
 | ||||
| @ -407,18 +409,18 @@ func (cli *Client) SetDisplayName(displayName string) (err error) { | ||||
| 	s := struct { | ||||
| 		DisplayName string `json:"displayname"` | ||||
| 	}{displayName} | ||||
| 	_, err = cli.MakeRequest("PUT", urlPath, &s, nil) | ||||
| 	err = cli.MakeRequest("PUT", urlPath, &s, nil) | ||||
| 	return | ||||
| } | ||||
| 
 | ||||
| // GetAvatarURL gets the user's avatar URL. See http://matrix.org/docs/spec/client_server/r0.2.0.html#get-matrix-client-r0-profile-userid-avatar-url | ||||
| func (cli *Client) GetAvatarURL() (url string, err error) { | ||||
| func (cli *Client) GetAvatarURL() (string, error) { | ||||
| 	urlPath := cli.BuildURL("profile", cli.UserID, "avatar_url") | ||||
| 	s := struct { | ||||
| 		AvatarURL string `json:"avatar_url"` | ||||
| 	}{} | ||||
| 
 | ||||
| 	_, err = cli.MakeRequest("GET", urlPath, nil, &s) | ||||
| 	err := cli.MakeRequest("GET", urlPath, nil, &s) | ||||
| 	if err != nil { | ||||
| 		return "", err | ||||
| 	} | ||||
| @ -427,12 +429,12 @@ func (cli *Client) GetAvatarURL() (url string, err error) { | ||||
| } | ||||
| 
 | ||||
| // SetAvatarURL sets the user's avatar URL. See http://matrix.org/docs/spec/client_server/r0.2.0.html#put-matrix-client-r0-profile-userid-avatar-url | ||||
| func (cli *Client) SetAvatarURL(url string) (err error) { | ||||
| func (cli *Client) SetAvatarURL(url string) error { | ||||
| 	urlPath := cli.BuildURL("profile", cli.UserID, "avatar_url") | ||||
| 	s := struct { | ||||
| 		AvatarURL string `json:"avatar_url"` | ||||
| 	}{url} | ||||
| 	_, err = cli.MakeRequest("PUT", urlPath, &s, nil) | ||||
| 	err := cli.MakeRequest("PUT", urlPath, &s, nil) | ||||
| 	if err != nil { | ||||
| 		return err | ||||
| 	} | ||||
| @ -445,7 +447,7 @@ func (cli *Client) SetAvatarURL(url string) (err error) { | ||||
| func (cli *Client) SendMessageEvent(roomID string, eventType string, contentJSON interface{}) (resp *RespSendEvent, err error) { | ||||
| 	txnID := txnID() | ||||
| 	urlPath := cli.BuildURL("rooms", roomID, "send", eventType, txnID) | ||||
| 	_, err = cli.MakeRequest("PUT", urlPath, contentJSON, &resp) | ||||
| 	err = cli.MakeRequest("PUT", urlPath, contentJSON, &resp) | ||||
| 	return | ||||
| } | ||||
| 
 | ||||
| @ -453,7 +455,7 @@ func (cli *Client) SendMessageEvent(roomID string, eventType string, contentJSON | ||||
| // contentJSON should be a pointer to something that can be encoded as JSON using json.Marshal. | ||||
| func (cli *Client) SendStateEvent(roomID, eventType, stateKey string, contentJSON interface{}) (resp *RespSendEvent, err error) { | ||||
| 	urlPath := cli.BuildURL("rooms", roomID, "state", eventType, stateKey) | ||||
| 	_, err = cli.MakeRequest("PUT", urlPath, contentJSON, &resp) | ||||
| 	err = cli.MakeRequest("PUT", urlPath, contentJSON, &resp) | ||||
| 	return | ||||
| } | ||||
| 
 | ||||
| @ -491,6 +493,36 @@ func (cli *Client) SendVideo(roomID, body, url string) (*RespSendEvent, error) { | ||||
| 		}) | ||||
| } | ||||
| 
 | ||||
| // SendAudio sends an m.room.message event into the given room with a msgtype of m.audio | ||||
| // See https://matrix.org/docs/spec/client_server/r0.2.0.html#m-audio | ||||
| func (cli *Client) SendAudio(roomID, body, url, mimetype string, size uint) (*RespSendEvent, error) { | ||||
| 	return cli.SendMessageEvent(roomID, "m.room.message", | ||||
| 		AudioMessage{ | ||||
| 			MsgType: "m.audio", | ||||
| 			Body:    body, | ||||
| 			URL:     url, | ||||
| 			Info: AudioInfo{ | ||||
| 				Size:     size, | ||||
| 				Mimetype: mimetype, | ||||
| 			}, | ||||
| 		}) | ||||
| } | ||||
| 
 | ||||
| // SendFile sends an m.room.message event into the given room with a msgtype of m.file | ||||
| // See https://matrix.org/docs/spec/client_server/r0.2.0.html#m-file | ||||
| func (cli *Client) SendFile(roomID, body, url, mimetype string, size uint) (*RespSendEvent, error) { | ||||
| 	return cli.SendMessageEvent(roomID, "m.room.message", | ||||
| 		FileMessage{ | ||||
| 			MsgType: "m.file", | ||||
| 			Body:    body, | ||||
| 			URL:     url, | ||||
| 			Info: FileInfo{ | ||||
| 				Size:     size, | ||||
| 				Mimetype: mimetype, | ||||
| 			}, | ||||
| 		}) | ||||
| } | ||||
| 
 | ||||
| // SendNotice sends an m.room.message event into the given room with a msgtype of m.notice | ||||
| // See http://matrix.org/docs/spec/client_server/r0.2.0.html#m-notice | ||||
| func (cli *Client) SendNotice(roomID, text string) (*RespSendEvent, error) { | ||||
| @ -507,7 +539,7 @@ func (cli *Client) SendNoticeHTML(roomID, textclear, text string) (*RespSendEven | ||||
| func (cli *Client) RedactEvent(roomID, eventID string, req *ReqRedact) (resp *RespSendEvent, err error) { | ||||
| 	txnID := txnID() | ||||
| 	urlPath := cli.BuildURL("rooms", roomID, "redact", eventID, txnID) | ||||
| 	_, err = cli.MakeRequest("PUT", urlPath, req, &resp) | ||||
| 	err = cli.MakeRequest("PUT", urlPath, req, &resp) | ||||
| 	return | ||||
| } | ||||
| 
 | ||||
| @ -518,56 +550,56 @@ func (cli *Client) RedactEvent(roomID, eventID string, req *ReqRedact) (resp *Re | ||||
| //  fmt.Println("Room:", resp.RoomID) | ||||
| func (cli *Client) CreateRoom(req *ReqCreateRoom) (resp *RespCreateRoom, err error) { | ||||
| 	urlPath := cli.BuildURL("createRoom") | ||||
| 	_, err = cli.MakeRequest("POST", urlPath, req, &resp) | ||||
| 	err = cli.MakeRequest("POST", urlPath, req, &resp) | ||||
| 	return | ||||
| } | ||||
| 
 | ||||
| // LeaveRoom leaves the given room. See http://matrix.org/docs/spec/client_server/r0.2.0.html#post-matrix-client-r0-rooms-roomid-leave | ||||
| func (cli *Client) LeaveRoom(roomID string) (resp *RespLeaveRoom, err error) { | ||||
| 	u := cli.BuildURL("rooms", roomID, "leave") | ||||
| 	_, err = cli.MakeRequest("POST", u, struct{}{}, &resp) | ||||
| 	err = cli.MakeRequest("POST", u, struct{}{}, &resp) | ||||
| 	return | ||||
| } | ||||
| 
 | ||||
| // ForgetRoom forgets a room entirely. See http://matrix.org/docs/spec/client_server/r0.2.0.html#post-matrix-client-r0-rooms-roomid-forget | ||||
| func (cli *Client) ForgetRoom(roomID string) (resp *RespForgetRoom, err error) { | ||||
| 	u := cli.BuildURL("rooms", roomID, "forget") | ||||
| 	_, err = cli.MakeRequest("POST", u, struct{}{}, &resp) | ||||
| 	err = cli.MakeRequest("POST", u, struct{}{}, &resp) | ||||
| 	return | ||||
| } | ||||
| 
 | ||||
| // InviteUser invites a user to a room. See http://matrix.org/docs/spec/client_server/r0.2.0.html#post-matrix-client-r0-rooms-roomid-invite | ||||
| func (cli *Client) InviteUser(roomID string, req *ReqInviteUser) (resp *RespInviteUser, err error) { | ||||
| 	u := cli.BuildURL("rooms", roomID, "invite") | ||||
| 	_, err = cli.MakeRequest("POST", u, struct{}{}, &resp) | ||||
| 	err = cli.MakeRequest("POST", u, req, &resp) | ||||
| 	return | ||||
| } | ||||
| 
 | ||||
| // InviteUserByThirdParty invites a third-party identifier to a room. See http://matrix.org/docs/spec/client_server/r0.2.0.html#invite-by-third-party-id-endpoint | ||||
| func (cli *Client) InviteUserByThirdParty(roomID string, req *ReqInvite3PID) (resp *RespInviteUser, err error) { | ||||
| 	u := cli.BuildURL("rooms", roomID, "invite") | ||||
| 	_, err = cli.MakeRequest("POST", u, req, &resp) | ||||
| 	err = cli.MakeRequest("POST", u, req, &resp) | ||||
| 	return | ||||
| } | ||||
| 
 | ||||
| // KickUser kicks a user from a room. See http://matrix.org/docs/spec/client_server/r0.2.0.html#post-matrix-client-r0-rooms-roomid-kick | ||||
| func (cli *Client) KickUser(roomID string, req *ReqKickUser) (resp *RespKickUser, err error) { | ||||
| 	u := cli.BuildURL("rooms", roomID, "kick") | ||||
| 	_, err = cli.MakeRequest("POST", u, req, &resp) | ||||
| 	err = cli.MakeRequest("POST", u, req, &resp) | ||||
| 	return | ||||
| } | ||||
| 
 | ||||
| // BanUser bans a user from a room. See http://matrix.org/docs/spec/client_server/r0.2.0.html#post-matrix-client-r0-rooms-roomid-ban | ||||
| func (cli *Client) BanUser(roomID string, req *ReqBanUser) (resp *RespBanUser, err error) { | ||||
| 	u := cli.BuildURL("rooms", roomID, "ban") | ||||
| 	_, err = cli.MakeRequest("POST", u, req, &resp) | ||||
| 	err = cli.MakeRequest("POST", u, req, &resp) | ||||
| 	return | ||||
| } | ||||
| 
 | ||||
| // UnbanUser unbans a user from a room. See http://matrix.org/docs/spec/client_server/r0.2.0.html#post-matrix-client-r0-rooms-roomid-unban | ||||
| func (cli *Client) UnbanUser(roomID string, req *ReqUnbanUser) (resp *RespUnbanUser, err error) { | ||||
| 	u := cli.BuildURL("rooms", roomID, "unban") | ||||
| 	_, err = cli.MakeRequest("POST", u, req, &resp) | ||||
| 	err = cli.MakeRequest("POST", u, req, &resp) | ||||
| 	return | ||||
| } | ||||
| 
 | ||||
| @ -575,7 +607,7 @@ func (cli *Client) UnbanUser(roomID string, req *ReqUnbanUser) (resp *RespUnbanU | ||||
| func (cli *Client) UserTyping(roomID string, typing bool, timeout int64) (resp *RespTyping, err error) { | ||||
| 	req := ReqTyping{Typing: typing, Timeout: timeout} | ||||
| 	u := cli.BuildURL("rooms", roomID, "typing", cli.UserID) | ||||
| 	_, err = cli.MakeRequest("PUT", u, req, &resp) | ||||
| 	err = cli.MakeRequest("PUT", u, req, &resp) | ||||
| 	return | ||||
| } | ||||
| 
 | ||||
| @ -584,7 +616,7 @@ func (cli *Client) UserTyping(roomID string, typing bool, timeout int64) (resp * | ||||
| // See http://matrix.org/docs/spec/client_server/r0.2.0.html#get-matrix-client-r0-rooms-roomid-state-eventtype-statekey | ||||
| func (cli *Client) StateEvent(roomID, eventType, stateKey string, outContent interface{}) (err error) { | ||||
| 	u := cli.BuildURL("rooms", roomID, "state", eventType, stateKey) | ||||
| 	_, err = cli.MakeRequest("GET", u, nil, outContent) | ||||
| 	err = cli.MakeRequest("GET", u, nil, outContent) | ||||
| 	return | ||||
| } | ||||
| 
 | ||||
| @ -625,8 +657,9 @@ func (cli *Client) UploadToContentRepo(content io.Reader, contentType string, co | ||||
| 			} | ||||
| 		} | ||||
| 		return nil, HTTPError{ | ||||
| 			Message: "Upload request failed: " + string(contents), | ||||
| 			Code:    res.StatusCode, | ||||
| 			Contents: contents, | ||||
| 			Message:  "Upload request failed: " + string(contents), | ||||
| 			Code:     res.StatusCode, | ||||
| 		} | ||||
| 	} | ||||
| 	var m RespMediaUpload | ||||
| @ -642,7 +675,7 @@ func (cli *Client) UploadToContentRepo(content io.Reader, contentType string, co | ||||
| // This API is primarily designed for application services which may want to efficiently look up joined members in a room. | ||||
| func (cli *Client) JoinedMembers(roomID string) (resp *RespJoinedMembers, err error) { | ||||
| 	u := cli.BuildURL("rooms", roomID, "joined_members") | ||||
| 	_, err = cli.MakeRequest("GET", u, nil, &resp) | ||||
| 	err = cli.MakeRequest("GET", u, nil, &resp) | ||||
| 	return | ||||
| } | ||||
| 
 | ||||
| @ -652,7 +685,7 @@ func (cli *Client) JoinedMembers(roomID string) (resp *RespJoinedMembers, err er | ||||
| // This API is primarily designed for application services which may want to efficiently look up joined rooms. | ||||
| func (cli *Client) JoinedRooms() (resp *RespJoinedRooms, err error) { | ||||
| 	u := cli.BuildURL("joined_rooms") | ||||
| 	_, err = cli.MakeRequest("GET", u, nil, &resp) | ||||
| 	err = cli.MakeRequest("GET", u, nil, &resp) | ||||
| 	return | ||||
| } | ||||
| 
 | ||||
| @ -672,7 +705,7 @@ func (cli *Client) Messages(roomID, from, to string, dir rune, limit int) (resp | ||||
| 	} | ||||
| 
 | ||||
| 	urlPath := cli.BuildURLWithQuery([]string{"rooms", roomID, "messages"}, query) | ||||
| 	_, err = cli.MakeRequest("GET", urlPath, nil, &resp) | ||||
| 	err = cli.MakeRequest("GET", urlPath, nil, &resp) | ||||
| 	return | ||||
| } | ||||
| 
 | ||||
| @ -680,7 +713,7 @@ func (cli *Client) Messages(roomID, from, to string, dir rune, limit int) (resp | ||||
| // See http://matrix.org/docs/spec/client_server/r0.2.0.html#get-matrix-client-r0-voip-turnserver | ||||
| func (cli *Client) TurnServer() (resp *RespTurnServer, err error) { | ||||
| 	urlPath := cli.BuildURL("voip", "turnServer") | ||||
| 	_, err = cli.MakeRequest("GET", urlPath, nil, &resp) | ||||
| 	err = cli.MakeRequest("GET", urlPath, nil, &resp) | ||||
| 	return | ||||
| } | ||||
| 
 | ||||
|  | ||||
							
								
								
									
										52
									
								
								vendor/github.com/matterbridge/gomatrix/events.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										52
									
								
								vendor/github.com/matterbridge/gomatrix/events.go
									
									
									
										generated
									
									
										vendored
									
									
								
							| @ -15,6 +15,7 @@ type Event struct { | ||||
| 	RoomID    string                 `json:"room_id"`             // The room the event was sent to. May be nil (e.g. for presence) | ||||
| 	Content   map[string]interface{} `json:"content"`             // The JSON content of the event. | ||||
| 	Redacts   string                 `json:"redacts,omitempty"`   // The event ID that was redacted if a m.room.redaction event | ||||
| 	Unsigned  map[string]interface{} `json:"unsigned"`            // The unsigned portions of the event, such as age and prev_content | ||||
| } | ||||
| 
 | ||||
| // Body returns the value of the "body" key in the event content if it is | ||||
| @ -47,22 +48,47 @@ type TextMessage struct { | ||||
| 	FormattedBody string `json:"formatted_body,omitempty"` | ||||
| } | ||||
| 
 | ||||
| // ImageInfo contains info about an image - http://matrix.org/docs/spec/client_server/r0.2.0.html#m-image | ||||
| type ImageInfo struct { | ||||
| // ThumbnailInfo contains info about an thumbnail image - http://matrix.org/docs/spec/client_server/r0.2.0.html#m-image | ||||
| type ThumbnailInfo struct { | ||||
| 	Height   uint   `json:"h,omitempty"` | ||||
| 	Width    uint   `json:"w,omitempty"` | ||||
| 	Mimetype string `json:"mimetype,omitempty"` | ||||
| 	Size     uint   `json:"size,omitempty"` | ||||
| } | ||||
| 
 | ||||
| // ImageInfo contains info about an image - http://matrix.org/docs/spec/client_server/r0.2.0.html#m-image | ||||
| type ImageInfo struct { | ||||
| 	Height        uint          `json:"h,omitempty"` | ||||
| 	Width         uint          `json:"w,omitempty"` | ||||
| 	Mimetype      string        `json:"mimetype,omitempty"` | ||||
| 	Size          uint          `json:"size,omitempty"` | ||||
| 	ThumbnailInfo ThumbnailInfo `json:"thumbnail_info,omitempty"` | ||||
| 	ThumbnailURL  string        `json:"thumbnail_url,omitempty"` | ||||
| } | ||||
| 
 | ||||
| // VideoInfo contains info about a video - http://matrix.org/docs/spec/client_server/r0.2.0.html#m-video | ||||
| type VideoInfo struct { | ||||
| 	Mimetype      string        `json:"mimetype,omitempty"` | ||||
| 	ThumbnailInfo ThumbnailInfo `json:"thumbnail_info"` | ||||
| 	ThumbnailURL  string        `json:"thumbnail_url,omitempty"` | ||||
| 	Height        uint          `json:"h,omitempty"` | ||||
| 	Width         uint          `json:"w,omitempty"` | ||||
| 	Duration      uint          `json:"duration,omitempty"` | ||||
| 	Size          uint          `json:"size,omitempty"` | ||||
| } | ||||
| 
 | ||||
| // AudioInfo contains info about a file - http://matrix.org/docs/spec/client_server/r0.2.0.html#m-audio | ||||
| type AudioInfo struct { | ||||
| 	Mimetype string `json:"mimetype,omitempty"` | ||||
| 	Size     uint   `json:"size,omitempty"` | ||||
| 	Duration uint   `json:"duration,omitempty"` | ||||
| } | ||||
| 
 | ||||
| // FileInfo contains info about a file - http://matrix.org/docs/spec/client_server/r0.2.0.html#m-file | ||||
| type FileInfo struct { | ||||
| 	Mimetype      string    `json:"mimetype,omitempty"` | ||||
| 	ThumbnailInfo ImageInfo `json:"thumbnail_info"` | ||||
| 	ThumbnailURL  string    `json:"thumbnail_url,omitempty"` | ||||
| 	Height        uint      `json:"h,omitempty"` | ||||
| 	Width         uint      `json:"w,omitempty"` | ||||
| 	Duration      uint      `json:"duration,omitempty"` | ||||
| 	Size          uint      `json:"size,omitempty"` | ||||
| } | ||||
| 
 | ||||
| @ -82,6 +108,22 @@ type ImageMessage struct { | ||||
| 	Info    ImageInfo `json:"info"` | ||||
| } | ||||
| 
 | ||||
| // AudioMessage is an m.audio event | ||||
| type AudioMessage struct { | ||||
| 	MsgType string    `json:"msgtype"` | ||||
| 	Body    string    `json:"body"` | ||||
| 	URL     string    `json:"url"` | ||||
| 	Info    AudioInfo `json:"info"` | ||||
| } | ||||
| 
 | ||||
| // FileMessage is a m.file event | ||||
| type FileMessage struct { | ||||
| 	MsgType string   `json:"msgtype"` | ||||
| 	Body    string   `json:"body"` | ||||
| 	URL     string   `json:"url"` | ||||
| 	Info    FileInfo `json:"info"` | ||||
| } | ||||
| 
 | ||||
| // An HTMLMessage is the contents of a Matrix HTML formated message event. | ||||
| type HTMLMessage struct { | ||||
| 	Body          string `json:"body"` | ||||
|  | ||||
							
								
								
									
										81
									
								
								vendor/github.com/matterbridge/gomatrix/filter.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										81
									
								
								vendor/github.com/matterbridge/gomatrix/filter.go
									
									
									
										generated
									
									
										vendored
									
									
								
							| @ -14,6 +14,8 @@ | ||||
| 
 | ||||
| package gomatrix | ||||
| 
 | ||||
| import "errors" | ||||
| 
 | ||||
| //Filter is used by clients to specify how the server should filter responses to e.g. sync requests | ||||
| //Specified by: https://matrix.org/docs/spec/client_server/r0.2.0.html#filtering | ||||
| type Filter struct { | ||||
| @ -21,23 +23,68 @@ type Filter struct { | ||||
| 	EventFields []string   `json:"event_fields,omitempty"` | ||||
| 	EventFormat string     `json:"event_format,omitempty"` | ||||
| 	Presence    FilterPart `json:"presence,omitempty"` | ||||
| 	Room        struct { | ||||
| 		AccountData  FilterPart `json:"account_data,omitempty"` | ||||
| 		Ephemeral    FilterPart `json:"ephemeral,omitempty"` | ||||
| 		IncludeLeave bool       `json:"include_leave,omitempty"` | ||||
| 		NotRooms     []string   `json:"not_rooms,omitempty"` | ||||
| 		Rooms        []string   `json:"rooms,omitempty"` | ||||
| 		State        FilterPart `json:"state,omitempty"` | ||||
| 		Timeline     FilterPart `json:"timeline,omitempty"` | ||||
| 	} `json:"room,omitempty"` | ||||
| 	Room        RoomFilter `json:"room,omitempty"` | ||||
| } | ||||
| 
 | ||||
| type FilterPart struct { | ||||
| 	NotRooms   []string `json:"not_rooms,omitempty"` | ||||
| 	Rooms      []string `json:"rooms,omitempty"` | ||||
| 	Limit      *int     `json:"limit,omitempty"` | ||||
| 	NotSenders []string `json:"not_senders,omitempty"` | ||||
| 	NotTypes   []string `json:"not_types,omitempty"` | ||||
| 	Senders    []string `json:"senders,omitempty"` | ||||
| 	Types      []string `json:"types,omitempty"` | ||||
| // RoomFilter is used to define filtering rules for room events | ||||
| type RoomFilter struct { | ||||
| 	AccountData  FilterPart `json:"account_data,omitempty"` | ||||
| 	Ephemeral    FilterPart `json:"ephemeral,omitempty"` | ||||
| 	IncludeLeave bool       `json:"include_leave,omitempty"` | ||||
| 	NotRooms     []string   `json:"not_rooms,omitempty"` | ||||
| 	Rooms        []string   `json:"rooms,omitempty"` | ||||
| 	State        FilterPart `json:"state,omitempty"` | ||||
| 	Timeline     FilterPart `json:"timeline,omitempty"` | ||||
| } | ||||
| 
 | ||||
| // FilterPart is used to define filtering rules for specific categories of events | ||||
| type FilterPart struct { | ||||
| 	NotRooms    []string `json:"not_rooms,omitempty"` | ||||
| 	Rooms       []string `json:"rooms,omitempty"` | ||||
| 	Limit       int      `json:"limit,omitempty"` | ||||
| 	NotSenders  []string `json:"not_senders,omitempty"` | ||||
| 	NotTypes    []string `json:"not_types,omitempty"` | ||||
| 	Senders     []string `json:"senders,omitempty"` | ||||
| 	Types       []string `json:"types,omitempty"` | ||||
| 	ContainsURL *bool    `json:"contains_url,omitempty"` | ||||
| } | ||||
| 
 | ||||
| // Validate checks if the filter contains valid property values | ||||
| func (filter *Filter) Validate() error { | ||||
| 	if filter.EventFormat != "client" && filter.EventFormat != "federation" { | ||||
| 		return errors.New("Bad event_format value. Must be one of [\"client\", \"federation\"]") | ||||
| 	} | ||||
| 	return nil | ||||
| } | ||||
| 
 | ||||
| // DefaultFilter returns the default filter used by the Matrix server if no filter is provided in the request | ||||
| func DefaultFilter() Filter { | ||||
| 	return Filter{ | ||||
| 		AccountData: DefaultFilterPart(), | ||||
| 		EventFields: nil, | ||||
| 		EventFormat: "client", | ||||
| 		Presence:    DefaultFilterPart(), | ||||
| 		Room: RoomFilter{ | ||||
| 			AccountData:  DefaultFilterPart(), | ||||
| 			Ephemeral:    DefaultFilterPart(), | ||||
| 			IncludeLeave: false, | ||||
| 			NotRooms:     nil, | ||||
| 			Rooms:        nil, | ||||
| 			State:        DefaultFilterPart(), | ||||
| 			Timeline:     DefaultFilterPart(), | ||||
| 		}, | ||||
| 	} | ||||
| } | ||||
| 
 | ||||
| // DefaultFilterPart returns the default filter part used by the Matrix server if no filter is provided in the request | ||||
| func DefaultFilterPart() FilterPart { | ||||
| 	return FilterPart{ | ||||
| 		NotRooms:   nil, | ||||
| 		Rooms:      nil, | ||||
| 		Limit:      20, | ||||
| 		NotSenders: nil, | ||||
| 		NotTypes:   nil, | ||||
| 		Senders:    nil, | ||||
| 		Types:      nil, | ||||
| 	} | ||||
| } | ||||
|  | ||||
							
								
								
									
										3
									
								
								vendor/github.com/matterbridge/gomatrix/responses.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										3
									
								
								vendor/github.com/matterbridge/gomatrix/responses.go
									
									
									
										generated
									
									
										vendored
									
									
								
							| @ -84,7 +84,7 @@ type RespUserInteractive struct { | ||||
| 		Stages []string `json:"stages"` | ||||
| 	} `json:"flows"` | ||||
| 	Params    map[string]interface{} `json:"params"` | ||||
| 	Session   string                 `json:"string"` | ||||
| 	Session   string                 `json:"session"` | ||||
| 	Completed []string               `json:"completed"` | ||||
| 	ErrCode   string                 `json:"errcode"` | ||||
| 	Error     string                 `json:"error"` | ||||
| @ -168,6 +168,7 @@ type RespSync struct { | ||||
| 	} `json:"rooms"` | ||||
| } | ||||
| 
 | ||||
| // RespTurnServer is the JSON response from a Turn Server | ||||
| type RespTurnServer struct { | ||||
| 	Username string   `json:"username"` | ||||
| 	Password string   `json:"password"` | ||||
|  | ||||
							
								
								
									
										2
									
								
								vendor/github.com/matterbridge/gomatrix/userids.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										2
									
								
								vendor/github.com/matterbridge/gomatrix/userids.go
									
									
									
										generated
									
									
										vendored
									
									
								
							| @ -125,6 +125,6 @@ func ExtractUserLocalpart(userID string) (string, error) { | ||||
| 	} | ||||
| 	return strings.TrimPrefix( | ||||
| 		strings.SplitN(userID, ":", 2)[0], // @foo:bar:8448 => [ "@foo", "bar:8448" ] | ||||
| 		"@", // remove "@" prefix | ||||
| 		"@",                               // remove "@" prefix | ||||
| 	), nil | ||||
| } | ||||
|  | ||||
							
								
								
									
										2
									
								
								vendor/modules.txt
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										2
									
								
								vendor/modules.txt
									
									
									
									
										vendored
									
									
								
							| @ -101,7 +101,7 @@ github.com/matterbridge/Rocket.Chat.Go.SDK/realtime | ||||
| github.com/matterbridge/Rocket.Chat.Go.SDK/rest | ||||
| # github.com/matterbridge/go-xmpp v0.0.0-20180529212104-cd19799fba91 | ||||
| github.com/matterbridge/go-xmpp | ||||
| # github.com/matterbridge/gomatrix v0.0.0-20190102230110-6f9631ca6dea | ||||
| # github.com/matterbridge/gomatrix v0.0.0-20191026211822-6fc7accd00ca | ||||
| github.com/matterbridge/gomatrix | ||||
| # github.com/matterbridge/gozulipbot v0.0.0-20190212232658-7aa251978a18 | ||||
| github.com/matterbridge/gozulipbot | ||||
|  | ||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user
	 Wim
						Wim