diff options
| author | Bobby <[email protected]> | 2025-07-07 22:57:31 +0530 |
|---|---|---|
| committer | Bobby <[email protected]> | 2025-07-07 22:57:31 +0530 |
| commit | 52a0248c1c81a14699b3d33ba7efe0c56bbe7477 (patch) | |
| tree | 02d35fee769d518beb5dd01715e84d13ea421d51 /database | |
| parent | b6a04140f2668a0dcae4befcd272e05b75bd14e5 (diff) | |
| download | imageboard-52a0248c1c81a14699b3d33ba7efe0c56bbe7477.tar.xz imageboard-52a0248c1c81a14699b3d33ba7efe0c56bbe7477.zip | |
massive y2k retro overhaul with sidebar, context processors, and proper database organization
Diffstat (limited to 'database')
| -rw-r--r-- | database/comments.go | 11 | ||||
| -rw-r--r-- | database/images.go | 34 | ||||
| -rw-r--r-- | database/tags.go | 23 |
3 files changed, 68 insertions, 0 deletions
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 +} |
