40 lines
839 B
Go

package main
import (
"github.com/akyoto/color"
"github.com/animenotifier/notify.moe/arn"
)
const maxNotificationsPerUser = 30
func main() {
color.Yellow("Deleting old notifications")
defer color.Green("Finished")
defer arn.Node.Close()
count := 0
for user := range arn.StreamUsers() {
notifications := user.Notifications()
notificationCount := len(notifications.Items)
if notificationCount > maxNotificationsPerUser {
cut := len(notifications.Items) - maxNotificationsPerUser
deletedItems := notifications.Items[:cut]
newItems := notifications.Items[cut:]
for _, notificationID := range deletedItems {
arn.DB.Delete("Notification", notificationID)
}
notifications.Items = newItems
notifications.Save()
count += len(deletedItems)
}
}
color.Green("Deleted %d notifications", count)
}