diff options
author | Özgür Kesim <oec@codeblau.de> | 2023-12-27 03:06:11 +0100 |
---|---|---|
committer | Özgür Kesim <oec@codeblau.de> | 2023-12-27 03:06:11 +0100 |
commit | bd0f83f4257c5e53af32d6ffe0935785fcde3acf (patch) | |
tree | 6b968cd10d60629081041ec1895b4c5564f9390c /main.go |
init
Diffstat (limited to 'main.go')
-rw-r--r-- | main.go | 57 |
1 files changed, 57 insertions, 0 deletions
@@ -0,0 +1,57 @@ +package main + +import ( + "context" + "flag" + "fmt" + "log" + "net/http" + "os" + "time" +) + +var ( + fl_url = flag.String("url", "https://bugs.gnunet.org/api/rest/issues", "URL to the issues") + fl_token = flag.String("token", os.Getenv("MANTIS_API_TOKEN"), "API-Token") + fl_port = flag.String("port", ":8080", "[ip]:port to serve") + fl_num = flag.Int("num", 100, "number of issues to retrieve at once") + fl_min = flag.String("min", "0.9.3", "minimum version for data") +) + +func main() { + flag.Parse() + fmt.Println("starting") + + var ctx = context.Background() + var data = NewData(ctx, *fl_url, *fl_token, *fl_num) + data.filterId = 230 + data.projectId = 23 + data.minimumVersion = *fl_min + + data.update() + go func() { + var ticker = time.NewTicker(15 * time.Second) + for range ticker.C { + select { + case <-ctx.Done(): + return + default: + fmt.Println("updating data") + data.update() + } + } + }() + + http.HandleFunc("/", func(w http.ResponseWriter, r *http.Request) { + data.printTemplate(w, "table.tmpl") + }) + http.HandleFunc("/list", func(w http.ResponseWriter, r *http.Request) { + data.printTemplate(w, "list.tmpl") + }) + http.HandleFunc("/json", func(w http.ResponseWriter, r *http.Request) { + data.printJSON(w) + }) + fmt.Println("ready to serve") + + log.Fatal(http.ListenAndServe(*fl_port, nil)) +} |