mirror of
https://github.com/IllusionMan1212/gorc.git
synced 2026-10-24 02:12:33 +00:00
35 lines
648 B
Go
35 lines
648 B
Go
package mainscreen
|
|
|
|
import (
|
|
"bufio"
|
|
"fmt"
|
|
"strings"
|
|
|
|
tea "github.com/charmbracelet/bubbletea"
|
|
"github.com/illusionman1212/gorc/parser"
|
|
)
|
|
|
|
type State struct {
|
|
content string
|
|
Reader *bufio.Reader
|
|
}
|
|
|
|
func (s State) Update(msg tea.Msg) (State, tea.Cmd) {
|
|
switch msg := msg.(type) {
|
|
case InitialReadMsg:
|
|
return s, s.readFromServer
|
|
case ReceivedIRCCommandMsg:
|
|
message := parser.ParseIRCMessage(msg.Msg)
|
|
fullMsg := fmt.Sprintf("%s %s %s", message.Source, message.Command, strings.Join(message.Parameters, " "))
|
|
s.content += fullMsg
|
|
|
|
return s, s.readFromServer
|
|
}
|
|
|
|
return s, nil
|
|
}
|
|
|
|
func (s State) View() string {
|
|
return s.content
|
|
}
|