Kaynağa Gözat

feat: do not display deleted messages (#328)

Ayyan 2 yıl önce
ebeveyn
işleme
414984c020
3 değiştirilmiş dosya ile 22 ekleme ve 9 silme
  1. 1 9
      cmd/guilds_tree.go
  2. 12 0
      cmd/messages_text.go
  3. 9 0
      cmd/state.go

+ 1 - 9
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 {

+ 12 - 0
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
 

+ 9 - 0
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)
+	}
+}