Move everything back to root dir

This commit is contained in:
Joakim Hellsén 2024-02-14 04:40:48 +01:00
commit 1fa8351d11
19 changed files with 257 additions and 300 deletions

59
stats.go Normal file
View file

@ -0,0 +1,59 @@
package main
import (
"fmt"
"os"
"time"
)
type Cache struct {
timestamp time.Time
data string
}
var cache Cache
func GetDBSize() (string, error) {
// If cache is less than 10 minutes old, return cached data
if time.Since(cache.timestamp).Minutes() < 10 {
return cache.data, nil
}
// TODO: This should be read from the environment
fileInfo, err := os.Stat("feedvault.db")
if err != nil {
return "", err
}
// Get the file size in bytes
fileSize := fileInfo.Size()
// Convert to human readable size and append the unit (KiB, MiB, GiB, TiB)
var size float64
if fileSize < 1024*1024 {
// If the file size is less than 1 KiB, return the size in bytes
size = float64(fileSize) / 1024
cache.data = fmt.Sprintf("%.2f KiB", size)
} else if fileSize < 1024*1024*1024 {
// If the file size is less than 1 MiB, return the size in KiB
size = float64(fileSize) / (1024 * 1024)
cache.data = fmt.Sprintf("%.2f MiB", size)
} else if fileSize < 1024*1024*1024*1024 {
// If the file size is less than 1 GiB, return the size in MiB
size = float64(fileSize) / (1024 * 1024 * 1024)
cache.data = fmt.Sprintf("%.2f GiB", size)
} else {
// If the file size is 1 GiB or more, return the size in TiB
size = float64(fileSize) / (1024 * 1024 * 1024 * 1024)
cache.data = fmt.Sprintf("%.2f TiB", size)
}
// Update cache timestamp
cache.timestamp = time.Now()
// Return the human readable size
return cache.data, nil
}