From ceae56bca319c721e6b76d1913a107c70e68c9c6 Mon Sep 17 00:00:00 2001 From: ayntgl Date: Sun, 17 Oct 2021 13:02:19 +0400 Subject: [PATCH] refactor: move isUnread to util.go --- discord.go | 18 ++---------------- util.go | 24 ++++++++++++++++++++---- 2 files changed, 22 insertions(+), 20 deletions(-) diff --git a/discord.go b/discord.go index 0ebc1b9..332838f 100644 --- a/discord.go +++ b/discord.go @@ -44,26 +44,12 @@ func onSessionReady(_ *discordgo.Session, r *discordgo.Ready) { n := channelsTree.GetRoot() n.AddChild(dmNode) - createPrivateChannels(r.PrivateChannels, dmNode) - createGuilds(r.Guilds, n) + createPrivateChannels(dmNode) + createGuilds(n) channelsTree.SetCurrentNode(n) } -func isUnread(c *discordgo.Channel) bool { - if c.LastMessageID == "" { - return false - } - - for _, rs := range session.State.ReadState { - if c.ID == rs.ID { - return c.LastMessageID != rs.LastMessageID - } - } - - return false -} - func onSessionMessageCreate(_ *discordgo.Session, m *discordgo.MessageCreate) { c, err := session.State.Channel(m.ChannelID) if err != nil { diff --git a/util.go b/util.go index b51f673..94da705 100644 --- a/util.go +++ b/util.go @@ -37,7 +37,8 @@ func findByMessageID(mID string) *discordgo.Message { return nil } -func createPrivateChannels(cs []*discordgo.Channel, dmNode *tview.TreeNode) { +func createPrivateChannels(n *tview.TreeNode) { + cs := session.State.PrivateChannels sort.Slice(cs, func(i, j int) bool { return cs[i].LastMessageID > cs[j].LastMessageID }) @@ -52,11 +53,12 @@ func createPrivateChannels(cs []*discordgo.Channel, dmNode *tview.TreeNode) { cn := tview.NewTreeNode(tag + generateChannelRepr(c) + "[::-]"). SetReference(c.ID) - dmNode.AddChild(cn) + n.AddChild(cn) } } -func createGuilds(gs []*discordgo.Guild, rootNode *tview.TreeNode) { +func createGuilds(n *tview.TreeNode) { + gs := session.State.Guilds sort.Slice(gs, func(a, b int) bool { found := false for _, gID := range session.State.Settings.GuildPositions { @@ -76,7 +78,7 @@ func createGuilds(gs []*discordgo.Guild, rootNode *tview.TreeNode) { for _, g := range gs { gn := tview.NewTreeNode(g.Name).Collapse() - rootNode.AddChild(gn) + n.AddChild(gn) cs := g.Channels sort.Slice(cs, func(i, j int) bool { @@ -185,3 +187,17 @@ func getTreeNodeByReference(r interface{}) (mn *tview.TreeNode) { return } + +func isUnread(c *discordgo.Channel) bool { + if c.LastMessageID == "" { + return false + } + + for _, rs := range session.State.ReadState { + if c.ID == rs.ID { + return c.LastMessageID != rs.LastMessageID + } + } + + return false +}