diff --git a/discordo.go b/discordo.go index 54da167..239c0a8 100644 --- a/discordo.go +++ b/discordo.go @@ -157,14 +157,20 @@ func onSessionReady(r *gateway.ReadyEvent) { for _, c := range g.Channels { switch c.Type { case discord.GuildCategory: - cNode := tview.NewTreeNode(c.Name). + cn := tview.NewTreeNode(c.Name). SetReference(c) - gn.AddChild(cNode) + gn.AddChild(cn) case discord.GuildText, discord.GuildNews: if c.ParentID == 0 || c.ParentID == discord.NullChannelID { - cNode := tview.NewTreeNode("[::d]#" + c.Name + "[-:-:-]"). + cn := tview.NewTreeNode("[::d]#" + c.Name + "[::-]"). SetReference(c) - gn.AddChild(cNode) + gn.AddChild(cn) + } + case discord.GuildStageVoice, discord.GuildVoice: + if c.ParentID == 0 || c.ParentID == discord.NullChannelID { + cn := tview.NewTreeNode("[::d]🔊" + c.Name + "[::-]"). + SetReference(c) + gn.AddChild(cn) } } } @@ -181,10 +187,19 @@ func onGuildsTreeViewSelected(n *tview.TreeNode) { case discord.GuildCategory: if len(n.GetChildren()) == 0 { for _, c := range currentGuild.Channels { - if (c.Type == discord.GuildText || c.Type == discord.GuildNews) && c.ParentID == r.ID { - cn := tview.NewTreeNode("[::d]#" + c.Name + "[-:-:-]"). - SetReference(c) - n.AddChild(cn) + switch c.Type { + case discord.GuildText, discord.GuildNews: + if c.ParentID == r.ID { + cn := tview.NewTreeNode("[::d]#" + c.Name + "[::-]"). + SetReference(c) + n.AddChild(cn) + } + case discord.GuildStageVoice, discord.GuildVoice: + if c.ParentID == r.ID { + cn := tview.NewTreeNode("[::d]🔊" + c.Name + "[::-]"). + SetReference(c) + n.AddChild(cn) + } } } } else { @@ -193,7 +208,6 @@ func onGuildsTreeViewSelected(n *tview.TreeNode) { case discord.GuildText, discord.GuildNews: if len(n.GetChildren()) == 0 { currentChannel = r - app.SetFocus(messageInputField) messagesTextView.Clear() messagesTextView.SetTitle(r.Name) @@ -219,7 +233,6 @@ func onGuildsTreeViewSelected(n *tview.TreeNode) { } case discord.GuildNewsThread, discord.GuildPrivateThread, discord.GuildPublicThread: currentChannel = r - app.SetFocus(messageInputField) messagesTextView.Clear() messagesTextView.SetTitle(r.Name) @@ -230,6 +243,9 @@ func onGuildsTreeViewSelected(n *tview.TreeNode) { util.WriteMessage(messagesTextView, clientID, m) } }() + case discord.GuildStageVoice, discord.GuildVoice: + messagesTextView.Clear() + messagesTextView.SetTitle(r.Name) } } } diff --git a/ui/flex.go b/ui/flex.go index 0c585de..c12bb79 100644 --- a/ui/flex.go +++ b/ui/flex.go @@ -4,14 +4,14 @@ import ( "github.com/rivo/tview" ) -func NewMainFlex(treeV *tview.TreeView, textV *tview.TextView, i *tview.InputField) (mainFlex *tview.Flex) { - rightFlex := tview.NewFlex(). +func NewMainFlex(treeV *tview.TreeView, textV *tview.TextView, i *tview.InputField) (mf *tview.Flex) { + rf := tview.NewFlex(). SetDirection(tview.FlexRow). AddItem(textV, 0, 1, false). AddItem(i, 3, 1, false) - mainFlex = tview.NewFlex(). + mf = tview.NewFlex(). AddItem(treeV, 30, 1, false). - AddItem(rightFlex, 0, 1, false) + AddItem(rf, 0, 1, false) - return mainFlex + return mf }