From 52a0248c1c81a14699b3d33ba7efe0c56bbe7477 Mon Sep 17 00:00:00 2001 From: Bobby Date: Mon, 7 Jul 2025 22:57:31 +0530 Subject: massive y2k retro overhaul with sidebar, context processors, and proper database organization --- database/comments.go | 11 +++++++++++ database/images.go | 34 ++++++++++++++++++++++++++++++++++ database/tags.go | 23 +++++++++++++++++++++++ 3 files changed, 68 insertions(+) create mode 100644 database/comments.go create mode 100644 database/images.go create mode 100644 database/tags.go (limited to 'database') diff --git a/database/comments.go b/database/comments.go new file mode 100644 index 0000000..1203be4 --- /dev/null +++ b/database/comments.go @@ -0,0 +1,11 @@ +package database + +import ( + "imageboard/models" +) + +func GetTotalCommentsCount() (int64, error) { + var count int64 + err := DB.Model(&models.Comment{}).Count(&count).Error + return count, err +} diff --git a/database/images.go b/database/images.go new file mode 100644 index 0000000..8fa1a47 --- /dev/null +++ b/database/images.go @@ -0,0 +1,34 @@ +package database + +import ( + "imageboard/models" + "imageboard/utils/format" + "time" +) + +func GetTotalPostsCount() (int64, error) { + var count int64 + err := DB.Model(&models.Image{}).Count(&count).Error + return count, err +} + +func GetTodayPostsCount() (int64, error) { + var count int64 + today := time.Now().Truncate(24 * time.Hour) + err := DB.Model(&models.Image{}).Where("created_at >= ?", today).Count(&count).Error + return count, err +} + +func GetTotalStorageSize() (string, error) { + var imageSizes []models.ImageSize + if err := DB.Select("file_size").Find(&imageSizes).Error; err != nil { + return "0 B", err + } + + var totalSize int64 + for _, size := range imageSizes { + totalSize += size.FileSize + } + + return format.FileSize(totalSize), nil +} diff --git a/database/tags.go b/database/tags.go new file mode 100644 index 0000000..199087a --- /dev/null +++ b/database/tags.go @@ -0,0 +1,23 @@ +package database + +import ( + "imageboard/models" +) + +func GetTotalTagsCount() (int64, error) { + var count int64 + err := DB.Model(&models.Tag{}).Where("is_deleted = ?", false).Count(&count).Error + return count, err +} + +func GetPopularTags(limit int) ([]models.Tag, error) { + var tags []models.Tag + err := DB.Where("is_deleted = ?", false).Order("count DESC").Limit(limit).Find(&tags).Error + return tags, err +} + +func GetRecentTags(limit int) ([]models.Tag, error) { + var tags []models.Tag + err := DB.Where("is_deleted = ?", false).Order("created_at DESC").Limit(limit).Find(&tags).Error + return tags, err +} -- cgit v1.2.3