refactor: move isUnread to util.go

This commit is contained in:
ayntgl 2021-10-17 13:02:19 +04:00
parent b04e5df2fa
commit ceae56bca3
2 changed files with 22 additions and 20 deletions

View file

@ -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 {

24
util.go
View file

@ -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
}