3
0

Remove cli chat client

This commit is contained in:
Denis Arh 2018-08-05 22:10:06 +02:00
parent 8889716189
commit 045063dd03

View File

@ -1,134 +0,0 @@
package main
import (
"bufio"
"encoding/json"
"github.com/SentimensRG/sigctx"
"github.com/crusttech/crust/sam/websocket/incoming"
"github.com/gorilla/websocket"
"log"
"os"
"strings"
)
func main() {
var ctx = sigctx.New()
var wsd = websocket.Dialer{}
conn, _, err := wsd.Dial("ws://localhost:3000/websocket/?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJleHAiOjE1MzM5ODg4MzksInN1YiI6IjIwNDA4NTk3MDc2MzUxMzk2NSJ9.aJQE-_hH_bxbri0SDmBok_UzvYnJrvDYc16E_6meJ6w", map[string][]string{})
must(err)
defer conn.Close()
go func() {
log := log.New(os.Stderr, "<<<<", log.LstdFlags)
// Reader
for {
mt, p, err := conn.ReadMessage()
must(err)
log.Printf("%d %s", mt, string(p))
}
}()
go func() {
reader := bufio.NewReader(os.Stdin)
var chanId = ""
// Writer
for {
func() {
if chanId == "" {
print("NO CHANNEL")
} else {
print(chanId)
}
print("> ")
text, _ := reader.ReadString('\n')
text = strings.TrimSpace(text)
if len(text) == 0 {
return
}
if text[:1] == "/" {
cmdSplit := strings.SplitN(text, " ", 2)
switch cmdSplit[0] {
case "/join":
if len(cmdSplit) < 2 {
println("/join <channelid>")
} else {
joinCh(conn, cmdSplit[1])
chanId = cmdSplit[1]
msgHistory(conn, chanId)
}
case "/part":
partCh(conn, chanId)
chanId = ""
case "/list":
listCh(conn)
case "/raw":
sendRaw(conn, cmdSplit[1])
default:
println("Unknown command, try:")
println(" /join <channel-id>")
println(" /part")
println(" /list")
println(" /raw <raw json to send>")
}
} else {
sendMsg(conn, text, chanId)
}
}()
}
}()
<-ctx.Done()
}
func must(err error) {
if err != nil {
log.Fatal(err)
}
}
func should(err error) {
if err != nil {
log.Printf("Warning: %+v", err)
}
}
func sendMsg(conn *websocket.Conn, text, chanId string) {
pb, err := json.Marshal(incoming.Payload{MessageCreate: &incoming.MessageCreate{Message: text, ChannelID: chanId}})
should(err)
should(conn.WriteMessage(websocket.TextMessage, pb))
}
func listCh(conn *websocket.Conn) {
pb, err := json.Marshal(incoming.Payload{ChannelList: &incoming.ChannelList{}})
should(err)
should(conn.WriteMessage(websocket.TextMessage, pb))
}
func joinCh(conn *websocket.Conn, channelId string) {
pb, err := json.Marshal(incoming.Payload{ChannelJoin: &incoming.ChannelJoin{ChannelID: channelId}})
should(err)
should(conn.WriteMessage(websocket.TextMessage, pb))
}
func partCh(conn *websocket.Conn, channelId string) {
pb, err := json.Marshal(incoming.Payload{ChannelPart: &incoming.ChannelPart{ChannelID: channelId}})
should(err)
should(conn.WriteMessage(websocket.TextMessage, pb))
}
func msgHistory(conn *websocket.Conn, channelId string) {
pb, err := json.Marshal(incoming.Payload{MessageHistory: &incoming.MessageHistory{ChannelID: channelId}})
should(err)
should(conn.WriteMessage(websocket.TextMessage, pb))
}
func sendRaw(conn *websocket.Conn, msg string) {
should(conn.WriteMessage(websocket.TextMessage, []byte(msg)))
}