first commit
This commit is contained in:
@@ -0,0 +1,48 @@
|
||||
package widgets
|
||||
|
||||
import (
|
||||
"ArinDash/apis/pihole"
|
||||
"ArinDash/util"
|
||||
"context"
|
||||
"fmt"
|
||||
"time"
|
||||
|
||||
"github.com/mum4k/termdash/terminal/terminalapi"
|
||||
"github.com/mum4k/termdash/widgetapi"
|
||||
"github.com/mum4k/termdash/widgets/text"
|
||||
)
|
||||
|
||||
type PiholeStatsOptions struct {
|
||||
}
|
||||
|
||||
func PiholeStats() PiholeStatsOptions {
|
||||
widgetOptions["PiholeStatsOptions"] = createPiholeStats
|
||||
return PiholeStatsOptions{}
|
||||
}
|
||||
|
||||
func createPiholeStats(ctx context.Context, _ terminalapi.Terminal, _ interface{}) widgetapi.Widget {
|
||||
list := util.PanicOnErrorWithResult(text.New())
|
||||
|
||||
ph := pihole.Connect()
|
||||
go util.Periodic(ctx, 1*time.Minute, func() error {
|
||||
summary := ph.Summary()
|
||||
if err := list.Write(fmt.Sprintf("Blocked Domains: %d\n", summary.Gravity.DomainsBeingBlocked), text.WriteReplace()); err != nil {
|
||||
return err
|
||||
}
|
||||
if err := list.Write(fmt.Sprint("---------------------------\n")); err != nil {
|
||||
return err
|
||||
}
|
||||
if err := list.Write(fmt.Sprintf("Total Queries: %d\n", summary.Queries.Total)); err != nil {
|
||||
return err
|
||||
}
|
||||
if err := list.Write(fmt.Sprintf("Blocked Queries: %d\n", summary.Queries.Blocked)); err != nil {
|
||||
return err
|
||||
}
|
||||
if err := list.Write(fmt.Sprintf("Unique Domains: %d\n", summary.Queries.UniqueDomains)); err != nil {
|
||||
return err
|
||||
}
|
||||
return nil
|
||||
})
|
||||
|
||||
return list
|
||||
}
|
||||
Reference in New Issue
Block a user