feat: add support for voice channels
This commit is contained in:
parent
e287066f23
commit
8ee54de596
2 changed files with 31 additions and 15 deletions
36
discordo.go
36
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)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
10
ui/flex.go
10
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
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue