Add pm command

This commit is contained in:
Tulir Asokan 2019-06-14 21:01:24 +03:00
parent 7c39729ada
commit ae3bb9c7a3
2 changed files with 29 additions and 8 deletions

View File

@ -76,12 +76,15 @@ func NewCommandProcessor(parent *MainView) *CommandProcessor {
Gomuks: parent.gmx,
},
aliases: map[string]*Alias{
"part": {"leave"},
"send": {"sendevent"},
"msend": {"msendevent"},
"state": {"setstate"},
"mstate": {"msetstate"},
"rb": {"rainbow"},
"part": {"leave"},
"send": {"sendevent"},
"msend": {"msendevent"},
"state": {"setstate"},
"mstate": {"msetstate"},
"rb": {"rainbow"},
"createroom": {"create"},
"dm": {"pm"},
"query": {"pm"},
},
commands: map[string]CommandHandler{
"unknown-command": cmdUnknownCommand,
@ -91,6 +94,7 @@ func NewCommandProcessor(parent *MainView) *CommandProcessor {
"clearcache": cmdClearCache,
"leave": cmdLeave,
"create": cmdCreateRoom,
"pm": cmdPrivateMessage,
"join": cmdJoin,
"kick": cmdKick,
"ban": cmdBan,

View File

@ -27,8 +27,9 @@ import (
"github.com/lucasb-eyer/go-colorful"
"maunium.net/go/gomuks/debug"
"maunium.net/go/mautrix"
"maunium.net/go/gomuks/debug"
)
func cmdMe(cmd *Command) {
@ -122,6 +123,7 @@ func cmdHelp(cmd *Command) {
/rainbow <message> - Send a rainbow message (markdown not supported).
/create [room name] - Create a room.
/pm <user id> <...> - Create a private chat with the given user(s).
/join <room address> - Join a room.
/leave - Leave the current room.
@ -201,7 +203,6 @@ func cmdKick(cmd *Command) {
debug.Print("Error in kick call:", err)
debug.Print("Failed to kick user:", err)
}
}
func cmdCreateRoom(cmd *Command) {
@ -217,6 +218,22 @@ func cmdCreateRoom(cmd *Command) {
cmd.MainView.SwitchRoom("", room)
}
func cmdPrivateMessage(cmd *Command) {
if len(cmd.Args) == 0 {
cmd.Reply("Usage: /pm <user id> [more user ids...]")
}
req := &mautrix.ReqCreateRoom{
Preset: "trusted_private_chat",
Invite: cmd.Args,
}
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) {
if len(cmd.Args) == 0 {
cmd.Reply("Usage: /join <room>")