mirror of
https://github.com/Dvorinka/PPve.git
synced 2026-06-05 04:52:58 +00:00
ss
This commit is contained in:
@@ -46,6 +46,45 @@ type VisitorStats struct {
|
||||
ReferrerStats map[string]int `json:"referrer_stats"`
|
||||
}
|
||||
|
||||
// Initialize VisitorStats with proper struct types
|
||||
func (v *VisitorStats) init() {
|
||||
if v.UniqueVisitors == nil {
|
||||
v.UniqueVisitors = make(map[string]struct {
|
||||
FirstVisit time.Time
|
||||
LastVisit time.Time
|
||||
Visits int
|
||||
IP string
|
||||
UserAgent string
|
||||
})
|
||||
}
|
||||
|
||||
if v.BrowserStats == nil {
|
||||
v.BrowserStats = make(map[string]int)
|
||||
}
|
||||
|
||||
if v.OSStats == nil {
|
||||
v.OSStats = make(map[string]int)
|
||||
}
|
||||
|
||||
if v.ReferrerStats == nil {
|
||||
v.ReferrerStats = make(map[string]int)
|
||||
}
|
||||
|
||||
if len(v.MostActiveHours) == 0 {
|
||||
v.MostActiveHours = make([]struct {
|
||||
Hour int
|
||||
Count int
|
||||
}, 24)
|
||||
}
|
||||
|
||||
if len(v.MostActiveDays) == 0 {
|
||||
v.MostActiveDays = make([]struct {
|
||||
Day string
|
||||
Count int
|
||||
}, 7)
|
||||
}
|
||||
}
|
||||
|
||||
const visitorStatsFile = "data/visitor_stats.json"
|
||||
|
||||
func loadVisitorStats() (*VisitorStats, error) {
|
||||
@@ -58,6 +97,9 @@ func loadVisitorStats() (*VisitorStats, error) {
|
||||
LastUpdated: time.Now(),
|
||||
}
|
||||
|
||||
// Initialize all fields
|
||||
stats.init()
|
||||
|
||||
data, err := os.ReadFile(visitorStatsFile)
|
||||
if err != nil {
|
||||
return stats, nil // Return default stats if file doesn't exist
|
||||
|
||||
Reference in New Issue
Block a user