diff --git a/monitor.go b/monitor.go index e200cff..39860e4 100644 --- a/monitor.go +++ b/monitor.go @@ -37,6 +37,8 @@ func (m *StatusMonitor) Start() { m.updateStatus() + m.cleanChannel() + ticker := time.NewTicker(m.interval) go func() { for range ticker.C { @@ -45,6 +47,29 @@ func (m *StatusMonitor) Start() { }() } +func (m *StatusMonitor) cleanChannel() { + msgs, err := m.session.ChannelMessages(m.channelID, 100, "", "", "") + if err != nil { + log.Printf("Error fetching messages for cleanup: %v", err) + return + } + + var toDelete []string + for _, msg := range msgs { + if msg.Author.ID != m.session.State.User.ID { + toDelete = append(toDelete, msg.ID) + } + } + + if len(toDelete) == 0 { + return + } + + if err := m.session.ChannelMessagesBulkDelete(m.channelID, toDelete); err != nil { + log.Printf("Error bulk deleting messages: %v", err) + } +} + func (m *StatusMonitor) findExistingMessage() { msgs, err := m.session.ChannelMessages(m.channelID, 50, "", "", "") if err != nil {