打通网络

This commit is contained in:
2021-10-21 18:46:43 +08:00
parent 67d44ea967
commit afde513ad9
10 changed files with 160 additions and 45 deletions

View File

@@ -13,17 +13,15 @@
package view
import (
"fmt"
"github.com/rocket049/gocui"
"log"
"time"
"wechat/ws"
)
var (
viewArr = []string{"msg", "send"}
active = 1
gg *gocui.Gui
onSend func(msg string)
)
func setCurrentViewOnTop(g *gocui.Gui, name string) (*gocui.View, error) {
@@ -81,6 +79,10 @@ func quit(g *gocui.Gui, v *gocui.View) error {
return gocui.ErrQuit
}
func OnSendMsg(fn func(msg string)) {
onSend = fn
}
func OnMessage(msg string) {
gg.Update(func(gui *gocui.Gui) error {
v, err := gui.View("msg")
@@ -111,23 +113,13 @@ func sendMsg(g *gocui.Gui, v *gocui.View) error {
return v.SetCursor(0, 0)
}
str := string(byts)
msg, err := g.View("msg")
if err != nil {
return err
if onSend != nil {
onSend(str)
}
n, err := ws.SendMsg(str)
if err != nil {
return err
}
msgStr := fmt.Sprintf("[%d]%s(%s): %s\n", n, "我", time.Now().Format("15:04:05"), str)
_, err = msg.Write([]byte(msgStr))
if err == nil {
v.Clear()
err = v.SetCursor(0, 0)
}
return err
v.Clear()
return v.SetCursor(0, 0)
}
func arrowUp(g *gocui.Gui, v *gocui.View) error {
@@ -161,6 +153,11 @@ func backspace(g *gocui.Gui, v *gocui.View) error {
return nil
}
func clear(g *gocui.Gui, v *gocui.View) error {
v.Clear()
return v.SetCursor(0, 0)
}
func init() {
g, err := gocui.NewGui(gocui.OutputNormal)
if err != nil {
@@ -188,6 +185,10 @@ func init() {
log.Panic(err)
}
if err := g.SetKeybinding("send", gocui.KeyCtrlD, gocui.ModNone, clear); err != nil {
log.Panic(err)
}
if err := g.SetKeybinding("send", gocui.KeyBackspace2, gocui.ModNone, backspace); err != nil {
log.Panic(err)
}