remove UI stuff, turn into CLI master
authorFrédéric Péters <fpeters@0d.be>
Sat, 21 Mar 2020 13:04:57 +0000 (14:04 +0100)
committerFrédéric Péters <fpeters@0d.be>
Sat, 21 Mar 2020 13:04:57 +0000 (14:04 +0100)
client.go
main.go
ui.go

index 060e059..420aae2 100644 (file)
--- a/client.go
+++ b/client.go
@@ -36,10 +36,6 @@ func (b *Barnard) start() {
 func (b *Barnard) OnConnect(e *gumble.ConnectEvent) {
        b.Client = e.Client
 
 func (b *Barnard) OnConnect(e *gumble.ConnectEvent) {
        b.Client = e.Client
 
-       b.Ui.SetActive(uiViewInput)
-       b.UiTree.Rebuild()
-       b.Ui.Refresh()
-
        b.UpdateInputStatus(fmt.Sprintf("To: %s", e.Client.Self.Channel.Name))
        b.AddOutputLine(fmt.Sprintf("Connected to %s", b.Client.Conn.RemoteAddr()))
        if e.WelcomeMessage != nil {
        b.UpdateInputStatus(fmt.Sprintf("To: %s", e.Client.Self.Channel.Name))
        b.AddOutputLine(fmt.Sprintf("Connected to %s", b.Client.Conn.RemoteAddr()))
        if e.WelcomeMessage != nil {
diff --git a/main.go b/main.go
index bbe84fa..dbdc209 100644 (file)
--- a/main.go
+++ b/main.go
@@ -6,8 +6,8 @@ import (
        "fmt"
        "os"
 
        "fmt"
        "os"
 
-       "layeh.com/barnard/uiterm"
        "layeh.com/gumble/gumble"
        "layeh.com/gumble/gumble"
+       "layeh.com/gumble/gumbleutil"
        _ "layeh.com/gumble/opus"
 )
 
        _ "layeh.com/gumble/opus"
 )
 
@@ -44,6 +44,14 @@ func main() {
                b.TLSConfig.Certificates = append(b.TLSConfig.Certificates, cert)
        }
 
                b.TLSConfig.Certificates = append(b.TLSConfig.Certificates, cert)
        }
 
-       b.Ui = uiterm.New(&b)
-       b.Ui.Run()
+       keepAlive := make(chan bool)
+
+       b.Config.Attach(gumbleutil.Listener{
+               Disconnect: func(e *gumble.DisconnectEvent) {
+                       keepAlive <- true
+               },
+       })
+
+       b.start()
+       <-keepAlive
 }
 }
diff --git a/ui.go b/ui.go
index 98b7b7b..803b478 100644 (file)
--- a/ui.go
+++ b/ui.go
@@ -2,37 +2,25 @@ package main
 
 import (
        "fmt"
 
 import (
        "fmt"
+       "os"
        "strings"
        "time"
 
        "github.com/kennygrant/sanitize"
        "strings"
        "time"
 
        "github.com/kennygrant/sanitize"
-       "layeh.com/barnard/uiterm"
        "layeh.com/gumble/gumble"
 )
 
        "layeh.com/gumble/gumble"
 )
 
-const (
-       uiViewLogo        = "logo"
-       uiViewTop         = "top"
-       uiViewStatus      = "status"
-       uiViewInput       = "input"
-       uiViewInputStatus = "inputstatus"
-       uiViewOutput      = "output"
-       uiViewTree        = "tree"
-)
-
 func esc(str string) string {
        return sanitize.HTML(str)
 }
 
 func (b *Barnard) UpdateInputStatus(status string) {
 func esc(str string) string {
        return sanitize.HTML(str)
 }
 
 func (b *Barnard) UpdateInputStatus(status string) {
-       b.UiInputStatus.Text = status
-       b.UiTree.Rebuild()
-       b.Ui.Refresh()
+       fmt.Fprintf(os.Stdout, "input status: %s\n", status)
 }
 
 func (b *Barnard) AddOutputLine(line string) {
        now := time.Now()
 }
 
 func (b *Barnard) AddOutputLine(line string) {
        now := time.Now()
-       b.UiOutput.AddLine(fmt.Sprintf("[%02d:%02d:%02d] %s", now.Hour(), now.Minute(), now.Second(), line))
+       fmt.Fprintf(os.Stdout, "[%02d:%02d:%02d] %s\n", now.Hour(), now.Minute(), now.Second(), line)
 }
 
 func (b *Barnard) AddOutputMessage(sender *gumble.User, message string) {
 }
 
 func (b *Barnard) AddOutputMessage(sender *gumble.User, message string) {
@@ -42,130 +30,3 @@ func (b *Barnard) AddOutputMessage(sender *gumble.User, message string) {
                b.AddOutputLine(fmt.Sprintf("%s: %s", sender.Name, strings.TrimSpace(esc(message))))
        }
 }
                b.AddOutputLine(fmt.Sprintf("%s: %s", sender.Name, strings.TrimSpace(esc(message))))
        }
 }
-
-func (b *Barnard) OnVoiceToggle(ui *uiterm.Ui, key uiterm.Key) {
-       if b.UiStatus.Text == "  Tx  " {
-               b.UiStatus.Text = " Idle "
-               b.UiStatus.Fg = uiterm.ColorBlack
-               b.UiStatus.Bg = uiterm.ColorWhite
-               b.Stream.StopSource()
-       } else {
-               b.UiStatus.Fg = uiterm.ColorWhite | uiterm.AttrBold
-               b.UiStatus.Bg = uiterm.ColorRed
-               b.UiStatus.Text = "  Tx  "
-               b.Stream.StartSource()
-       }
-       ui.Refresh()
-}
-
-func (b *Barnard) OnQuitPress(ui *uiterm.Ui, key uiterm.Key) {
-       b.Client.Disconnect()
-       b.Ui.Close()
-}
-
-func (b *Barnard) OnClearPress(ui *uiterm.Ui, key uiterm.Key) {
-       b.UiOutput.Clear()
-}
-
-func (b *Barnard) OnScrollOutputUp(ui *uiterm.Ui, key uiterm.Key) {
-       b.UiOutput.ScrollUp()
-}
-
-func (b *Barnard) OnScrollOutputDown(ui *uiterm.Ui, key uiterm.Key) {
-       b.UiOutput.ScrollDown()
-}
-
-func (b *Barnard) OnScrollOutputTop(ui *uiterm.Ui, key uiterm.Key) {
-       b.UiOutput.ScrollTop()
-}
-
-func (b *Barnard) OnScrollOutputBottom(ui *uiterm.Ui, key uiterm.Key) {
-       b.UiOutput.ScrollBottom()
-}
-
-func (b *Barnard) OnFocusPress(ui *uiterm.Ui, key uiterm.Key) {
-       active := b.Ui.Active()
-       if active == uiViewInput {
-               b.Ui.SetActive(uiViewTree)
-       } else if active == uiViewTree {
-               b.Ui.SetActive(uiViewInput)
-       }
-}
-
-func (b *Barnard) OnTextInput(ui *uiterm.Ui, textbox *uiterm.Textbox, text string) {
-       if text == "" {
-               return
-       }
-       if b.Client != nil && b.Client.Self != nil {
-               b.Client.Self.Channel.Send(text, false)
-               b.AddOutputMessage(b.Client.Self, text)
-       }
-}
-
-func (b *Barnard) OnUiInitialize(ui *uiterm.Ui) {
-       ui.Add(uiViewLogo, &uiterm.Label{
-               Text: " barnard ",
-               Fg:   uiterm.ColorWhite | uiterm.AttrBold,
-               Bg:   uiterm.ColorMagenta,
-       })
-
-       ui.Add(uiViewTop, &uiterm.Label{
-               Fg: uiterm.ColorWhite,
-               Bg: uiterm.ColorBlue,
-       })
-
-       b.UiStatus = uiterm.Label{
-               Text: " Idle ",
-               Fg:   uiterm.ColorBlack,
-               Bg:   uiterm.ColorWhite,
-       }
-       ui.Add(uiViewStatus, &b.UiStatus)
-
-       b.UiInput = uiterm.Textbox{
-               Fg:    uiterm.ColorWhite,
-               Bg:    uiterm.ColorBlack,
-               Input: b.OnTextInput,
-       }
-       ui.Add(uiViewInput, &b.UiInput)
-
-       b.UiInputStatus = uiterm.Label{
-               Fg: uiterm.ColorBlack,
-               Bg: uiterm.ColorWhite,
-       }
-       ui.Add(uiViewInputStatus, &b.UiInputStatus)
-
-       b.UiOutput = uiterm.Textview{
-               Fg: uiterm.ColorWhite,
-               Bg: uiterm.ColorBlack,
-       }
-       ui.Add(uiViewOutput, &b.UiOutput)
-
-       b.UiTree = uiterm.Tree{
-               Generator: b.TreeItem,
-               Listener:  b.TreeItemSelect,
-               Fg:        uiterm.ColorWhite,
-               Bg:        uiterm.ColorBlack,
-       }
-       ui.Add(uiViewTree, &b.UiTree)
-
-       b.Ui.AddKeyListener(b.OnFocusPress, uiterm.KeyTab)
-       b.Ui.AddKeyListener(b.OnVoiceToggle, uiterm.KeyF1)
-       b.Ui.AddKeyListener(b.OnQuitPress, uiterm.KeyF10)
-       b.Ui.AddKeyListener(b.OnClearPress, uiterm.KeyCtrlL)
-       b.Ui.AddKeyListener(b.OnScrollOutputUp, uiterm.KeyPgup)
-       b.Ui.AddKeyListener(b.OnScrollOutputDown, uiterm.KeyPgdn)
-       b.Ui.AddKeyListener(b.OnScrollOutputTop, uiterm.KeyHome)
-       b.Ui.AddKeyListener(b.OnScrollOutputBottom, uiterm.KeyEnd)
-
-       b.start()
-}
-
-func (b *Barnard) OnUiResize(ui *uiterm.Ui, width, height int) {
-       ui.SetBounds(uiViewLogo, 0, 0, 9, 1)
-       ui.SetBounds(uiViewTop, 9, 0, width-6, 1)
-       ui.SetBounds(uiViewStatus, width-6, 0, width, 1)
-       ui.SetBounds(uiViewInput, 0, height-1, width, height)
-       ui.SetBounds(uiViewInputStatus, 0, height-2, width, height-1)
-       ui.SetBounds(uiViewOutput, 0, 1, width-20, height-2)
-       ui.SetBounds(uiViewTree, width-20, 1, width, height-2)
-}