add stats endpoint

This commit is contained in:
2023-02-02 21:29:17 -08:00
parent 1ee5ff6bf0
commit dc1d43e69e
2 changed files with 22 additions and 1 deletions

View File

@@ -1,6 +1,7 @@
package main
import (
"encoding/json"
"net/http"
"strconv"
"time"
@@ -29,6 +30,26 @@ func main() {
svg := svg.GetWeekSVG(week)
svg.WriteTo(w)
})
r.HandleFunc("/stats.json", func(w http.ResponseWriter, r *http.Request) {
year := time.Now().Year()
yst := r.URL.Query().Get("year")
author := r.URL.Query().Get("author")
y, err := strconv.Atoi(yst)
if err == nil {
year = y
}
repoPaths, err := commits.GetMRRepos()
if err != nil {
panic(err)
}
freq, err := repoPaths.FrequencyChan(year, []string{author})
if err != nil {
panic(err)
}
b, _ := json.Marshal(freq)
w.Header().Add("Content-Type", "application/json")
w.Write(b)
})
r.HandleFunc("/yearly.svg", func(w http.ResponseWriter, r *http.Request) {
year := time.Now().Year()
yst := r.URL.Query().Get("year")

View File

@@ -69,7 +69,7 @@ func CacheGraph(year int, authors, repoPaths []string, freq types.Freq) {
}
hashCache[year][a][r] = types.ExpFreq{YearFreq: freq, Created: time.Now()}
go func() {
time.Sleep(time.Minute * 15)
time.Sleep(time.Hour * 1)
mapTex.Lock()
defer mapTex.Unlock()
delete(hashCache[year][a], r)