find-stone-beer / commit
Reworked how GitLab pages are generated: create JSON from result data, then load that on the page programmatically.
.gitignore | 2 +- main.go | 25 ++++++------------------- public/index.html | 24 ++++++++++++++++++++++++ 3 files changed, 31 insertions(+), 20 deletions(-) diff --git a/.gitignore b/.gitignore index a633703..16e3f13 100644 --- a/.gitignore +++ b/.gitignore @@ -1,4 +1,4 @@ cache/ __debug_bin find_stone_beer -public/ +public/results.js \ No newline at end of file diff --git a/main.go b/main.go index fe7c234..848f128 100644 --- a/main.go +++ b/main.go @@ -129,26 +129,13 @@ func main() { fmt.Printf("Message length: %d\n", len(message)) SendPushoverMessage(message) - sb := strings.Builder{} - sb.WriteString(`<!DOCTYPE html> - <html lang="en"> - <head> - <meta charset="utf-8"> - <title>FindStoneBeer - Results</title> - </head> - <body>`) - for _, seller := range relevantSellers { - sb.WriteString(seller.Message) - sb.WriteString("<br>") - } - sb.WriteString(`</body></html>`) - - outPath := "./public/index.html" - outDir := filepath.Dir(outPath) - if _, err := os.Stat(outDir); os.IsNotExist(err) { - os.MkdirAll(outDir, 0700) + relevantSellersJson, err := json.MarshalIndent(relevantSellers, "", " ") + if err != nil { + panic(err) } - err = os.WriteFile(outPath, []byte(sb.String()), 0644) + resultsJson := fmt.Sprintf("var results = %s;", relevantSellersJson) + outPath := "./public/results.js" + err = os.WriteFile(outPath, []byte(resultsJson), 0644) if err != nil { panic(err) } diff --git a/public/index.html b/public/index.html new file mode 100644 index 0000000..e369278 --- /dev/null +++ b/public/index.html @@ -0,0 +1,24 @@ +<!DOCTYPE html> +<html lang="en"> + +<head> + <meta charset="utf-8"> + <title>FindStoneBeer - Results</title> +</head> + +<body> +<h1>Find Stone Beer</h1> +<div id="root"></div> +<script src="results.js"></script> +<script> + console.log(results); + results.forEach(function (result) { + var div = document.createElement('h4'); + div.innerHTML = result.Message; + document.getElementById('root').appendChild(div); + }); +</script> + +</body> + +</html> \ No newline at end of file