2020-05-23 02:54:20 -04:00
|
|
|
package monitor
|
|
|
|
|
|
|
|
import (
|
|
|
|
"fmt"
|
|
|
|
"github.com/yosssi/gohtml"
|
|
|
|
"io/ioutil"
|
|
|
|
"log"
|
|
|
|
"os"
|
|
|
|
"path/filepath"
|
|
|
|
"strings"
|
|
|
|
)
|
|
|
|
|
2020-05-23 10:19:32 -04:00
|
|
|
var headline = `<!DOCTYPE html>
|
|
|
|
<html lang="en">
|
|
|
|
<head>
|
|
|
|
<meta charset="utf-8">
|
|
|
|
<title> I2P Reseed Monitoring </title>
|
|
|
|
<link rel="stylesheet" href="/styles.css">
|
|
|
|
<script src="/script.js"></script>
|
|
|
|
</head>
|
|
|
|
<body>
|
|
|
|
`
|
|
|
|
|
|
|
|
var footline = `
|
|
|
|
</body>
|
|
|
|
</html>
|
|
|
|
`
|
|
|
|
|
2020-05-23 02:54:20 -04:00
|
|
|
func GeneratePageData() []error {
|
|
|
|
config, err := SortedMap("config.json")
|
|
|
|
if err != nil {
|
|
|
|
log.Fatal(err)
|
|
|
|
}
|
|
|
|
return SortedMonitor(config)
|
|
|
|
}
|
|
|
|
|
|
|
|
func GeneratePage() (string, error) {
|
|
|
|
var ret string
|
2020-05-23 10:19:32 -04:00
|
|
|
ret += headline
|
2020-05-23 02:54:20 -04:00
|
|
|
err := filepath.Walk(".",
|
|
|
|
func(path string, info os.FileInfo, err error) error {
|
|
|
|
if err != nil {
|
|
|
|
return err
|
|
|
|
}
|
|
|
|
if strings.HasSuffix(info.Name(), ".json") {
|
|
|
|
if info.Name() != "config.json" {
|
|
|
|
ret += "\n" + ` <div class="` + TrimDir(path) + `">` + "\n"
|
|
|
|
f, e := ioutil.ReadFile(path)
|
|
|
|
if e == nil {
|
|
|
|
pre := string(f)
|
|
|
|
pre = strings.TrimPrefix(pre, "{")
|
|
|
|
pre = strings.TrimSuffix(pre, "}")
|
|
|
|
pre = strings.Replace(pre, `"`, "", -1)
|
|
|
|
pre2 := strings.Split(pre, ",")
|
2020-05-23 10:19:32 -04:00
|
|
|
ret += ` <div class="` + TrimDir(path) + ` keyvalue">`
|
2020-05-23 02:54:20 -04:00
|
|
|
for _, v := range pre2 {
|
|
|
|
ky, vy := Split2(v)
|
2020-05-23 10:19:32 -04:00
|
|
|
if ky != "Content" {
|
|
|
|
ret += "\n" + ` <span class="` + TrimDir(path) + " " + ky + ` key">` + ky + "\n"
|
|
|
|
ret += "\n </span>\n"
|
|
|
|
ret += "\n" + ` <span class="` + TrimDir(path) + " " + ky + ` value">` + vy + "\n"
|
|
|
|
ret += "\n </span>\n"
|
|
|
|
}
|
2020-05-23 02:54:20 -04:00
|
|
|
}
|
2020-05-23 10:19:32 -04:00
|
|
|
ret += ` </div>`
|
2020-05-23 02:54:20 -04:00
|
|
|
} else {
|
|
|
|
ret = e.Error()
|
|
|
|
}
|
|
|
|
ret += "\n </div>\n"
|
|
|
|
fmt.Println(path, info.Size())
|
|
|
|
}
|
|
|
|
}
|
|
|
|
return nil
|
|
|
|
})
|
|
|
|
if err != nil {
|
|
|
|
return "", err
|
|
|
|
}
|
2020-05-23 10:19:32 -04:00
|
|
|
ret += footline
|
2020-05-23 02:54:20 -04:00
|
|
|
return gohtml.Format(ret), nil
|
|
|
|
}
|
|
|
|
|
|
|
|
func TrimDir(path string) string {
|
|
|
|
return strings.Replace(strings.Replace(strings.Split(filepath.Dir(path), ":")[0], ".", "", -1), "/", "", -1)
|
|
|
|
}
|