Add Pi-hole blocked percentage and date widgets

This commit is contained in:
2025-12-22 20:45:55 +01:00
parent 2315ac2ce7
commit 7b6a8bbaab
7 changed files with 111 additions and 7 deletions

View File

@@ -2,7 +2,6 @@ package pihole
import (
"encoding/json"
"log"
)
type Version struct {
@@ -38,7 +37,7 @@ func (ph *PiHConnector) Version() Version {
err := json.Unmarshal(ph.get("info/version"), version)
if err != nil {
log.Fatal(err)
version = &Version{}
}
return *version
}

View File

@@ -41,6 +41,9 @@ func (ph *PiHConnector) post(endpoint string, body io.Reader) []byte {
}
func (ph *PiHConnector) do(method string, endpoint string, body io.Reader) []byte {
if ph.Host == "" {
return make([]byte, 0)
}
var requestString = "http://" + ph.Host + "/api/" + endpoint
client := &http.Client{}
@@ -67,7 +70,12 @@ func (ph *PiHConnector) do(method string, endpoint string, body io.Reader) []byt
return respBody
}
var connector *PiHConnector
func Connect() PiHConnector {
if connector != nil {
return *connector
}
cfg := &configFile{}
config.LoadConfig(cfg)
client := &http.Client{}
@@ -93,8 +101,9 @@ func Connect() PiHConnector {
if err != nil {
log.Fatal(err)
}
return PiHConnector{
connector = &PiHConnector{
Host: cfg.Pihole.Host,
Session: s.Session,
}
return *connector
}

View File

@@ -2,7 +2,6 @@ package pihole
import (
"encoding/json"
"log"
)
type Summary struct {
@@ -35,7 +34,7 @@ func (ph *PiHConnector) Summary() Summary {
err := json.Unmarshal(ph.get("stats/summary"), summary)
if err != nil {
log.Fatal(err)
summary = &Summary{}
}
return *summary
}