Browse Source

Limit the backlog of chat messages to recent messages. For #47

pull/68/head
Gabe Kangas 5 years ago
parent
commit
a277012650
  1. 16
      core/chat/chat.go
  2. 3
      core/chat/persistence.go

16
core/chat/chat.go

@ -80,5 +80,21 @@ func GetMessages() []models.ChatMessage { @@ -80,5 +80,21 @@ func GetMessages() []models.ChatMessage {
return []models.ChatMessage{}
}
return getRecentMessages()
}
func getRecentMessages() []models.ChatMessage {
if len(_server.Messages) < 100 {
return _server.Messages
}
maxAgeInHours := float64(2)
messages := make([]models.ChatMessage, 0)
for _, message := range _server.Messages {
if time.Since(message.Timestamp).Hours() < maxAgeInHours {
messages = append(messages, message)
}
}
return messages
}

3
core/chat/persistence.go

@ -67,7 +67,8 @@ func addMessage(message models.ChatMessage) { @@ -67,7 +67,8 @@ func addMessage(message models.ChatMessage) {
func getChatHistory() []models.ChatMessage {
history := make([]models.ChatMessage, 0)
rows, err := _db.Query("SELECT * FROM messages WHERE visible = 1")
// Get all messages sent within the past day
rows, err := _db.Query("SELECT * FROM messages WHERE visible = 1 AND datetime(timestamp) >=datetime('now', '-1 Day')")
if err != nil {
log.Fatal(err)
}

Loading…
Cancel
Save