aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--interface/matrix.go1
-rw-r--r--ui/commands.go32
2 files changed, 10 insertions, 23 deletions
diff --git a/interface/matrix.go b/interface/matrix.go
index 8c80c6d..f312df1 100644
--- a/interface/matrix.go
+++ b/interface/matrix.go
@@ -40,6 +40,7 @@ type MatrixContainer interface {
MarkRead(roomID, eventID string)
JoinRoom(roomID, server string) (*rooms.Room, error)
LeaveRoom(roomID string) error
+ CreateRoom(req *mautrix.ReqCreateRoom) (*rooms.Room, error)
GetHistory(room *rooms.Room, limit int) ([]*mautrix.Event, error)
GetEvent(room *rooms.Room, eventID string) (*mautrix.Event, error)
diff --git a/ui/commands.go b/ui/commands.go
index c2102fd..b418e84 100644
--- a/ui/commands.go
+++ b/ui/commands.go
@@ -121,7 +121,7 @@ func cmdHelp(cmd *Command) {
/me <message> - Send an emote message.
/rainbow <message> - Send a rainbow message (markdown not supported).
-/create <Room Name> <RoomAlias> - Create a room with associated alias. (Alias must not contain spaces.)
+/create [room name] - Create a room.
/join <room address> - Join a room.
/leave - Leave the current room.
@@ -205,30 +205,16 @@ func cmdKick(cmd *Command) {
}
func cmdCreateRoom(cmd *Command) {
- if len(cmd.Args) < 2 {
- cmd.Reply("Usage: /create <Room Name> <RoomAlias> (Alias must not contain spaces.)")
- return
- }
- // Get room name as one string from cmd.Args
- roomName := ""
- for i, v := range cmd.Args {
- if i == len(cmd.Args)-1 {
- break
- }
- roomName += fmt.Sprintf("%s ", v)
+ req := &mautrix.ReqCreateRoom{}
+ if len(cmd.Args) > 0 {
+ req.Name = strings.Join(cmd.Args, " ")
}
- last := len(cmd.Args) - 1 // last arg for room alias
- // Build the ReqCreateRoom Struct
- // https://godoc.org/maunium.net/go/mautrix#ReqCreateRoom
- req := &mautrix.ReqCreateRoom{
- Name: strings.TrimSpace(roomName),
- RoomAliasName: cmd.Args[last],
- }
- _, err := cmd.Matrix.Client().CreateRoom(req)
- debug.Print("Create room error:", err)
- if err == nil {
- cmd.Reply("The room has been created.")
+ room, err := cmd.Matrix.CreateRoom(req)
+ if err != nil {
+ cmd.Reply("Failed to create room:", err)
+ return
}
+ cmd.MainView.SwitchRoom("", room)
}
func cmdJoin(cmd *Command) {