ArinDash/apis/pihole/stats.go

42 lines
903 B
Go

package pihole
import (
"encoding/json"
)
type Summary struct {
Queries Queries `json:"queries"`
Clients Clients `json:"clients"`
Gravity Gravity `json:"gravity"`
}
type Queries struct {
Total int64 `json:"total"`
Blocked int64 `json:"blocked"`
PercentBlocked float64 `json:"percent_blocked"`
UniqueDomains int64 `json:"unique_domains"`
Forwarded int64 `json:"forwarded"`
Cached int64 `json:"cached"`
Frequency int64 `json:"frequency"`
}
type Clients struct {
Active int64 `json:"active"`
Total int64 `json:"total"`
}
type Gravity struct {
DomainsBeingBlocked int64 `json:"domains_being_blocked"`
LastUpdated int64 `json:"last_updated"`
}
func (ph *PiHConnector) Summary() Summary {
summary := &Summary{}
err := json.Unmarshal(ph.get("stats/summary"), summary)
if err != nil {
summary = &Summary{}
}
return *summary
}