From 414984c0208535f910cfd7b15b265a0998f10005 Mon Sep 17 00:00:00 2001 From: Ayyan <119342035+ayn2op@users.noreply.github.com> Date: Tue, 14 Nov 2023 19:29:57 +0530 Subject: [PATCH] feat: do not display deleted messages (#328) --- cmd/guilds_tree.go | 10 +--------- cmd/messages_text.go | 12 ++++++++++++ cmd/state.go | 9 +++++++++ 3 files changed, 22 insertions(+), 9 deletions(-) diff --git a/cmd/guilds_tree.go b/cmd/guilds_tree.go index f0c7e3b..27337ff 100644 --- a/cmd/guilds_tree.go +++ b/cmd/guilds_tree.go @@ -187,15 +187,7 @@ func (gt *GuildsTree) onSelected(n *tview.TreeNode) { gt.createChannelNodes(n, cs) case discord.ChannelID: - ms, err := discordState.Messages(ref, uint(cfg.MessagesLimit)) - if err != nil { - log.Println(err) - return - } - - for i := len(ms) - 1; i >= 0; i-- { - mainFlex.messagesText.createMessage(ms[i]) - } + mainFlex.messagesText.drawMsgs(ref) c, err := discordState.Cabinet.Channel(ref) if err != nil { diff --git a/cmd/messages_text.go b/cmd/messages_text.go index 5b660a2..fbe649a 100644 --- a/cmd/messages_text.go +++ b/cmd/messages_text.go @@ -49,6 +49,18 @@ func newMessagesText() *MessagesText { return mt } +func (mt *MessagesText) drawMsgs(cID discord.ChannelID) { + ms, err := discordState.Messages(cID, uint(cfg.MessagesLimit)) + if err != nil { + log.Println(err) + return + } + + for i := len(ms) - 1; i >= 0; i-- { + mainFlex.messagesText.createMessage(ms[i]) + } +} + func (mt *MessagesText) reset() { mainFlex.messagesText.selectedMessage = -1 diff --git a/cmd/state.go b/cmd/state.go index b1ed7e8..e2788c6 100644 --- a/cmd/state.go +++ b/cmd/state.go @@ -34,6 +34,8 @@ func openState(token string) error { // Handlers discordState.AddHandler(discordState.onReady) discordState.AddHandler(discordState.onMessageCreate) + discordState.AddHandler(discordState.onMessageDelete) + discordState.StateLog = discordState.onLog discordState.OnRequest = append(discordState.Client.OnRequest, discordState.onRequest) @@ -81,3 +83,10 @@ func (s *State) onMessageCreate(m *gateway.MessageCreateEvent) { mainFlex.messagesText.createMessage(m.Message) } } + +func (s *State) onMessageDelete(m *gateway.MessageDeleteEvent) { + if mainFlex.guildsTree.selectedChannelID == m.ChannelID { + mainFlex.messagesText.reset() + mainFlex.messagesText.drawMsgs(m.ChannelID) + } +}