diff --git a/go.mod b/go.mod index c339d47..fbfc7f8 100644 --- a/go.mod +++ b/go.mod @@ -7,9 +7,9 @@ require ( github.com/davecgh/go-spew v1.1.1 // indirect github.com/emvi/api-go v0.2.2 github.com/emvi/logbuch v1.1.1 - github.com/emvi/pirsch v1.3.3 + github.com/emvi/pirsch v1.4.0 github.com/go-sql-driver/mysql v1.5.0 // indirect - github.com/gorilla/mux v1.7.4 + github.com/gorilla/mux v1.8.0 github.com/gosimple/slug v1.9.0 github.com/kr/pretty v0.1.0 // indirect github.com/lib/pq v1.8.0 diff --git a/go.sum b/go.sum index dea58ea..600b464 100644 --- a/go.sum +++ b/go.sum @@ -17,11 +17,15 @@ github.com/emvi/pirsch v1.3.2 h1:CZCLO2OaWpA/eDdlg8xFo9yZMB9S71iyox54AVVwadU= github.com/emvi/pirsch v1.3.2/go.mod h1:GDijqLHM331iWtmDmc7th19RxDrZadRkKoNvd9/kDX8= github.com/emvi/pirsch v1.3.3 h1:TSiyXye77511/Xrjqd6ro87uodBzSDcxkZ0GzVU/YFg= github.com/emvi/pirsch v1.3.3/go.mod h1:GDijqLHM331iWtmDmc7th19RxDrZadRkKoNvd9/kDX8= +github.com/emvi/pirsch v1.4.0 h1:UuP/4jmkURySUH6DpR+igRsW5GKTb7axyPoMz0qz+8A= +github.com/emvi/pirsch v1.4.0/go.mod h1:GDijqLHM331iWtmDmc7th19RxDrZadRkKoNvd9/kDX8= github.com/go-sql-driver/mysql v1.4.0/go.mod h1:zAC/RDZ24gD3HViQzih4MyKcchzm+sOG5ZlKdlhCg5w= github.com/go-sql-driver/mysql v1.5.0 h1:ozyZYNQW3x3HtqT1jira07DN2PArx2v7/mN66gGcHOs= github.com/go-sql-driver/mysql v1.5.0/go.mod h1:DCzpHaOWr8IXmIStZouvnhqoel9Qv2LBy8hT2VhHyBg= github.com/gorilla/mux v1.7.4 h1:VuZ8uybHlWmqV03+zRzdwKL4tUnIp1MAQtp1mIFE1bc= github.com/gorilla/mux v1.7.4/go.mod h1:DVbg23sWSpFRCP0SfiEN6jmj59UnW/n46BH5rLB71So= +github.com/gorilla/mux v1.8.0 h1:i40aqfkR1h2SlN9hojwV5ZA91wcXFOvkdNIeFDP5koI= +github.com/gorilla/mux v1.8.0/go.mod h1:DVbg23sWSpFRCP0SfiEN6jmj59UnW/n46BH5rLB71So= github.com/gosimple/slug v1.9.0 h1:r5vDcYrFz9BmfIAMC829un9hq7hKM4cHUrsv36LbEqs= github.com/gosimple/slug v1.9.0/go.mod h1:AMZ+sOVe65uByN3kgEyf9WEBKBCSS+dJjMX9x4vDJbg= github.com/jmoiron/sqlx v1.2.0 h1:41Ip0zITnmWNR/vHV+S4m+VoUivnWY5E4OJfLZjCJMA= diff --git a/main.go b/main.go index e38523a..dcc441f 100644 --- a/main.go +++ b/main.go @@ -154,15 +154,15 @@ func serveTracking() http.HandlerFunc { TotalVisitorsLabels template.JS TotalVisitorsDps template.JS PageVisits []tracking.PageVisits - Pages []pirsch.VisitorPage - Languages []pirsch.VisitorLanguage - Referrer []pirsch.VisitorReferrer + Pages []pirsch.Stats + Languages []pirsch.Stats + Referrer []pirsch.Stats HourlyVisitorsLabels template.JS HourlyVisitorsDps template.JS HourlyVisitorsTodayLabels template.JS HourlyVisitorsTodayDps template.JS ActiveVisitors int - ActiveVisitorPages []pirsch.PageVisitors + ActiveVisitorPages []pirsch.Stats }{ start, startDate, diff --git a/template/tracking.html b/template/tracking.html index f2c6b32..439289b 100644 --- a/template/tracking.html +++ b/template/tracking.html @@ -42,7 +42,7 @@ {{range $data := .ActiveVisitorPages}} - {{$data.Path}} + {{$data.Path.String}} {{$data.Visitors}} @@ -77,7 +77,7 @@ {{range $data := .Pages}} - {{$data.Path}} + {{$data.Path.String}} {{$data.Visitors}} @@ -101,7 +101,7 @@ {{range $data := .Languages}} - {{if $data.Language}}{{$data.Language}}{{else}}(not set){{end}} + {{if $data.Language.Valid}}{{$data.Language.String}}{{else}}(not set){{end}} {{$data.Visitors}} {{round (multiply $data.RelativeVisitors 100)}} % @@ -125,8 +125,8 @@ {{range $data := .Referrer}} - {{if $data.Referrer}} - {{$data.Referrer}} + {{if $data.Referrer.Valid}} + {{$data.Referrer.String}} {{else}} (unknown) {{end}} diff --git a/tracking/statistics.go b/tracking/statistics.go index cd03bde..ab264bf 100644 --- a/tracking/statistics.go +++ b/tracking/statistics.go @@ -41,14 +41,14 @@ func GetPageVisits(startDate, endDate time.Time) []PageVisits { pageVisits := make([]PageVisits, len(visits)) for i, visit := range visits { - labels, data := getLabelsAndData(visit.Visits) - pageVisits[i] = PageVisits{visit.Path, labels, data} + labels, data := getLabelsAndData(visit.VisitorsPerDay) + pageVisits[i] = PageVisits{visit.Path.String, labels, data} } return pageVisits } -func GetPages(startDate, endDate time.Time) []pirsch.VisitorPage { +func GetPages(startDate, endDate time.Time) []pirsch.Stats { pages, err := analyzer.Pages(&pirsch.Filter{From: startDate, To: endDate}) if err != nil { @@ -63,7 +63,7 @@ func GetPages(startDate, endDate time.Time) []pirsch.VisitorPage { return pages } -func GetLanguages(startDate, endDate time.Time) []pirsch.VisitorLanguage { +func GetLanguages(startDate, endDate time.Time) []pirsch.Stats { languages, _, err := analyzer.Languages(&pirsch.Filter{From: startDate, To: endDate}) if err != nil { @@ -78,7 +78,7 @@ func GetLanguages(startDate, endDate time.Time) []pirsch.VisitorLanguage { return languages } -func GetReferrer(startDate, endDate time.Time) []pirsch.VisitorReferrer { +func GetReferrer(startDate, endDate time.Time) []pirsch.Stats { referrer, err := analyzer.Referrer(&pirsch.Filter{From: startDate, To: endDate}) if err != nil { @@ -126,7 +126,7 @@ func GetActiveVisitors() int { return visitors } -func GetActiveVisitorPages() []pirsch.PageVisitors { +func GetActiveVisitorPages() []pirsch.Stats { pages, err := analyzer.ActiveVisitorsPages(pirsch.NullTenant, time.Second*30) if err != nil { @@ -151,7 +151,7 @@ func getLabelsAndData(visitors []pirsch.VisitorsPerDay) (template.JS, template.J return template.JS(labelsStr[:len(labelsStr)-1]), template.JS(dataStr[:len(dataStr)-1]) } -func getLabelsAndDataHourly(visitors []pirsch.HourlyVisitors) (template.JS, template.JS) { +func getLabelsAndDataHourly(visitors []pirsch.Stats) (template.JS, template.JS) { var labels strings.Builder var dp strings.Builder