fix: don't clear messageID on transient discord errors (prevents spam)
This commit is contained in:
parent
e3ad2224da
commit
13e1ee2183
1 changed files with 19 additions and 10 deletions
29
monitor.go
29
monitor.go
|
|
@ -11,14 +11,15 @@ import (
|
|||
)
|
||||
|
||||
type StatusMonitor struct {
|
||||
mu sync.Mutex
|
||||
session *discordgo.Session
|
||||
channelID string
|
||||
host string
|
||||
port int
|
||||
interval time.Duration
|
||||
messageID string
|
||||
onlineSince time.Time
|
||||
mu sync.Mutex
|
||||
session *discordgo.Session
|
||||
channelID string
|
||||
host string
|
||||
port int
|
||||
interval time.Duration
|
||||
messageID string
|
||||
onlineSince time.Time
|
||||
editFailCount int
|
||||
}
|
||||
|
||||
func NewStatusMonitor(s *discordgo.Session, cfg *Config) *StatusMonitor {
|
||||
|
|
@ -139,8 +140,15 @@ func (m *StatusMonitor) updateStatus() {
|
|||
Embeds: &[]*discordgo.MessageEmbed{embed},
|
||||
})
|
||||
if err != nil {
|
||||
log.Printf("Error editing embed (will create new): %v", err)
|
||||
m.messageID = ""
|
||||
m.editFailCount++
|
||||
log.Printf("Error editing embed (attempt %d): %v", m.editFailCount, err)
|
||||
if m.editFailCount > 10 {
|
||||
log.Printf("Message may have been deleted, will create new one")
|
||||
m.messageID = ""
|
||||
m.editFailCount = 0
|
||||
}
|
||||
} else {
|
||||
m.editFailCount = 0
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -151,5 +159,6 @@ func (m *StatusMonitor) updateStatus() {
|
|||
return
|
||||
}
|
||||
m.messageID = msg.ID
|
||||
m.editFailCount = 0
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue