commit c9cba7374315776740f677230cc806b833a72f9e
parent b3d47a0f2e77b166ed563612be95def371896729
Author: n0tr1v <n0tr1v@protonmail.com>
Date: Fri, 26 May 2023 08:46:16 -0700
auto cleanup more tables
Diffstat:
7 files changed, 38 insertions(+), 0 deletions(-)
diff --git a/pkg/actions/actions.go b/pkg/actions/actions.go
@@ -259,6 +259,12 @@ func cleanupDatabase(db *database.DkfDB) {
db.DeleteOldCaptchaRequests()
db.DeleteOldAuditLogs()
db.DeleteOldSecurityLogs()
+ db.DeleteOldIgnoredUsers()
+ db.DeleteOldPmBlacklistedUsers()
+ db.DeleteOldPmWhitelistedUsers()
+ db.DeleteOldChatInboxMessages()
+ db.DeleteOldDownloads()
+ db.DeleteOldSessionNotifications()
logrus.Debugf("done cleaning database, took %s", time.Since(start))
}
}
diff --git a/pkg/database/tableChatInbox.go b/pkg/database/tableChatInbox.go
@@ -22,6 +22,12 @@ type ChatInboxMessage struct {
Room ChatRoom
}
+func (d *DkfDB) DeleteOldChatInboxMessages() {
+ if err := d.db.Delete(ChatInboxMessage{}, "created_at < date('now', '-90 Day')").Error; err != nil {
+ logrus.Error(err)
+ }
+}
+
func (d *DkfDB) GetUserChatInboxMessages(userID UserID) (msgs []ChatInboxMessage, err error) {
err = d.db.Order("id DESC").
Limit(50).
diff --git a/pkg/database/tableDownloads.go b/pkg/database/tableDownloads.go
@@ -1,6 +1,7 @@
package database
import (
+ "github.com/sirupsen/logrus"
"time"
)
@@ -13,6 +14,12 @@ type Download struct {
CreatedAt time.Time
}
+func (d *DkfDB) DeleteOldDownloads() {
+ if err := d.db.Delete(Download{}, "created_at < date('now', '-90 Day')").Error; err != nil {
+ logrus.Error(err)
+ }
+}
+
// CreateDownload ...
func (d *DkfDB) CreateDownload(userID UserID, filename string) (out Download, err error) {
out = Download{UserID: userID, Filename: filename}
diff --git a/pkg/database/tableIgnoredUsers.go b/pkg/database/tableIgnoredUsers.go
@@ -14,6 +14,11 @@ type IgnoredUser struct {
IgnoredUser User
}
+func (d *DkfDB) DeleteOldIgnoredUsers() {
+ d.db.Exec(`DELETE FROM ignored_users INNER JOIN users u ON ignored_user_id = u.id WHERE u.last_seen_at < date('now', '-60 Day')`)
+ // d.db.Exec(`DELETE FROM ignored_users INNER JOIN users u ON user_id = u.id WHERE u.last_seen_at < date('now', '-60 Day')`)
+}
+
func (d *DkfDB) GetIgnoredUsers(userID UserID) (out []IgnoredUser, err error) {
err = d.db.Where("user_id = ?", userID).Preload("IgnoredUser").Find(&out).Error
return
diff --git a/pkg/database/tableNotifications.go b/pkg/database/tableNotifications.go
@@ -26,6 +26,12 @@ type SessionNotification struct {
User User
}
+func (d *DkfDB) DeleteOldSessionNotifications() {
+ if err := d.db.Delete(SessionNotification{}, "created_at < date('now', '-90 Day')").Error; err != nil {
+ logrus.Error(err)
+ }
+}
+
func (d *DkfDB) GetUserNotifications(userID UserID) (msgs []Notification, err error) {
err = d.db.Order("id DESC").
Limit(50).
diff --git a/pkg/database/tablePmBlacklistedUsers.go b/pkg/database/tablePmBlacklistedUsers.go
@@ -10,6 +10,10 @@ type PmBlacklistedUsers struct {
BlacklistedUser User
}
+func (d *DkfDB) DeleteOldPmBlacklistedUsers() {
+ d.db.Exec(`DELETE FROM pm_blacklisted_users INNER JOIN users u ON blacklisted_user_id = u.id WHERE u.last_seen_at < date('now', '-90 Day')`)
+}
+
// IsUserPmBlacklisted returns either or not toUserID blacklisted fromUserID
func (d *DkfDB) IsUserPmBlacklisted(fromUserID, toUserID UserID) bool {
var count int64
diff --git a/pkg/database/tablePmWhitelistedUsers.go b/pkg/database/tablePmWhitelistedUsers.go
@@ -10,6 +10,10 @@ type PmWhitelistedUsers struct {
WhitelistedUser User
}
+func (d *DkfDB) DeleteOldPmWhitelistedUsers() {
+ d.db.Exec(`DELETE FROM pm_whitelisted_users INNER JOIN users u ON whitelisted_user_id = u.id WHERE u.last_seen_at < date('now', '-90 Day')`)
+}
+
func (d *DkfDB) IsUserPmWhitelisted(fromUserID, toUserID UserID) bool {
var count int64
d.db.Model(&PmWhitelistedUsers{}).Where("whitelisted_user_id = ? AND user_id = ?", fromUserID, toUserID).Count(&count)