From 88d71f70c1e2b04f28b34e84cec85a2a7a1698e1 Mon Sep 17 00:00:00 2001 From: ayn2op Date: Thu, 14 Sep 2023 11:52:31 +0530 Subject: [PATCH] feat: implement delete action --- cmd/run/messages_text.go | 36 ++++++++++++++++++++++++++++++++++++ config/keys.go | 4 ++++ 2 files changed, 40 insertions(+) diff --git a/cmd/run/messages_text.go b/cmd/run/messages_text.go index 3cd0351..baa3078 100644 --- a/cmd/run/messages_text.go +++ b/cmd/run/messages_text.go @@ -140,6 +140,9 @@ func (mt *MessagesText) onInputCapture(event *tcell.EventKey) *tcell.EventKey { case config.Current.Keys.MessagesText.ShowImage: mt.showImageAction() return nil + case config.Current.Keys.MessagesText.Delete: + mt.deleteAction() + return nil case config.Current.Keys.Cancel: mainFlex.guildsTree.selectedChannelID = 0 @@ -309,3 +312,36 @@ func (mt *MessagesText) showImageAction() { app.SetRoot(ai, true) } + +func (mt *MessagesText) deleteAction() { + if mt.selectedMessage == -1 { + return + } + + ms, err := discordState.Cabinet.Messages(mainFlex.guildsTree.selectedChannelID) + if err != nil { + log.Println(err) + return + } + + m := ms[mt.selectedMessage] + if err := discordState.DeleteMessage(mainFlex.guildsTree.selectedChannelID, m.ID, ""); err != nil { + log.Println(err) + } + + if err := discordState.MessageRemove(mainFlex.guildsTree.selectedChannelID, m.ID); err != nil { + log.Println(err) + } + + ms, err = discordState.Cabinet.Messages(mainFlex.guildsTree.selectedChannelID) + if err != nil { + log.Println(err) + return + } + + mt.Clear() + + for i := len(ms) - 1; i >= 0; i-- { + mainFlex.messagesText.createMessage(ms[i]) + } +} diff --git a/config/keys.go b/config/keys.go index 86bae88..e526de4 100644 --- a/config/keys.go +++ b/config/keys.go @@ -16,6 +16,8 @@ type ( ReplyMention string `yaml:"reply_mention"` SelectReply string `yaml:"select_reply"` + Delete string `yaml:"delete"` + SelectPrevious string `yaml:"select_previous"` SelectNext string `yaml:"select_next"` SelectFirst string `yaml:"select_first"` @@ -57,6 +59,8 @@ func defKeys() Keys { ReplyMention: "Rune[R]", SelectReply: "Rune[s]", + Delete: "Rune[d]", + SelectPrevious: "Up", SelectNext: "Down", SelectFirst: "Home",