mirror of
https://github.com/Kugelschieber/marvinblum.git
synced 2026-01-18 06:40:27 +00:00
Updated dependencies and filter referer statistic for my own domain.
This commit is contained in:
3
go.mod
3
go.mod
@@ -7,11 +7,10 @@ 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.2.0
|
||||
github.com/emvi/pirsch v1.3.0
|
||||
github.com/go-sql-driver/mysql v1.5.0 // indirect
|
||||
github.com/gorilla/mux v1.7.4
|
||||
github.com/gosimple/slug v1.9.0
|
||||
github.com/jmoiron/sqlx v1.2.0
|
||||
github.com/kr/pretty v0.1.0 // indirect
|
||||
github.com/lib/pq v1.8.0
|
||||
github.com/rs/cors v1.7.0
|
||||
|
||||
8
go.sum
8
go.sum
@@ -7,12 +7,10 @@ github.com/emvi/api-go v0.2.2 h1:NrZNl0o0xAbgfK1dFsRt/BKLesHLVjC4OKXHKTZsIis=
|
||||
github.com/emvi/api-go v0.2.2/go.mod h1:g9RdDC3s5ebCknAHQQ5PjoM2vRFSyyGoOUX3QkDKU+o=
|
||||
github.com/emvi/logbuch v1.1.1 h1:poBGNbHy/nB95oNoqLKAaJoBrcKxTO0W9DhMijKEkkU=
|
||||
github.com/emvi/logbuch v1.1.1/go.mod h1:J2Wgbr3BuSc1JO+D2MBVh6q3WPVSK5GzktwWz8pvkKw=
|
||||
github.com/emvi/pirsch v1.1.0 h1:uMnxWqbcKLpt1iBNP52aocCkgpfZAisvKcF0VzpVHv8=
|
||||
github.com/emvi/pirsch v1.1.0/go.mod h1:+YmBbltJ3feZz9L/QQyqwywltYvQKBfzrGD51TPKl5g=
|
||||
github.com/emvi/pirsch v1.1.1 h1:memw5fHl6ZY1dcB4Ic5tTtsbQkU9wTCjBlXi4G8D20o=
|
||||
github.com/emvi/pirsch v1.1.1/go.mod h1:GDijqLHM331iWtmDmc7th19RxDrZadRkKoNvd9/kDX8=
|
||||
github.com/emvi/pirsch v1.2.0 h1:k5OJwgE8/Zdq7raQNRF4aNHxWxPq7En51gWMMEFzinA=
|
||||
github.com/emvi/pirsch v1.2.0/go.mod h1:GDijqLHM331iWtmDmc7th19RxDrZadRkKoNvd9/kDX8=
|
||||
github.com/emvi/pirsch v1.3.0 h1:csgIvQKMMWF9EG4Dkfd4dFux6kfzOFC8PuNPWvsj7zM=
|
||||
github.com/emvi/pirsch v1.3.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=
|
||||
@@ -29,8 +27,6 @@ github.com/kr/text v0.1.0 h1:45sCR5RtlFHMR4UwH9sdQ5TC8v0qDQCHnXt+kaKSTVE=
|
||||
github.com/kr/text v0.1.0/go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI=
|
||||
github.com/lib/pq v1.0.0 h1:X5PMW56eZitiTeO7tKzZxFCSpbFZJtkMMooicw2us9A=
|
||||
github.com/lib/pq v1.0.0/go.mod h1:5WUZQaWbwv1U+lTReE5YruASi9Al49XbQIvNi/34Woo=
|
||||
github.com/lib/pq v1.7.0 h1:h93mCPfUSkaul3Ka/VG8uZdmW1uMHDGxzu0NWHuJmHY=
|
||||
github.com/lib/pq v1.7.0/go.mod h1:AlVN5x4E4T544tWzH6hKfbfQvm3HdbOxrmggDNAPY9o=
|
||||
github.com/lib/pq v1.8.0 h1:9xohqzkUwzR4Ga4ivdTcawVS89YSDVxXMa3xJX3cGzg=
|
||||
github.com/lib/pq v1.8.0/go.mod h1:AlVN5x4E4T544tWzH6hKfbfQvm3HdbOxrmggDNAPY9o=
|
||||
github.com/mattn/go-sqlite3 v1.9.0 h1:pDRiWfl+++eC2FEFRy6jXmQlvp4Yh3z1MJKg4UeYM/4=
|
||||
|
||||
8
main.go
8
main.go
@@ -209,7 +209,7 @@ func configureCors(router *mux.Router) http.Handler {
|
||||
return c.Handler(router)
|
||||
}
|
||||
|
||||
func start(handler http.Handler) {
|
||||
func start(handler http.Handler, trackingCancel context.CancelFunc) {
|
||||
logbuch.Info("Starting server...")
|
||||
var server http.Server
|
||||
server.Handler = handler
|
||||
@@ -220,6 +220,7 @@ func start(handler http.Handler) {
|
||||
signal.Notify(sigint, os.Interrupt)
|
||||
<-sigint
|
||||
logbuch.Info("Shutting down server...")
|
||||
trackingCancel()
|
||||
tracker.Stop()
|
||||
ctx, _ := context.WithTimeout(context.Background(), shutdownTimeout)
|
||||
|
||||
@@ -238,10 +239,11 @@ func start(handler http.Handler) {
|
||||
func main() {
|
||||
configureLog()
|
||||
logEnvConfig()
|
||||
tracker = tracking.NewTracker()
|
||||
var trackingCancel context.CancelFunc
|
||||
tracker, trackingCancel = tracking.NewTracker()
|
||||
tplCache = tpl.NewCache()
|
||||
blogInstance = blog.NewBlog(tplCache)
|
||||
router := setupRouter()
|
||||
corsConfig := configureCors(router)
|
||||
start(corsConfig)
|
||||
start(corsConfig, trackingCancel)
|
||||
}
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
package tracking
|
||||
|
||||
import (
|
||||
"context"
|
||||
"database/sql"
|
||||
"fmt"
|
||||
"github.com/emvi/logbuch"
|
||||
@@ -12,6 +13,7 @@ import (
|
||||
|
||||
const (
|
||||
connectionString = `host=%s port=%s user=%s password=%s dbname=%s sslmode=%s sslcert=%s sslkey=%s sslrootcert=%s connectTimeout=%s timezone=%s`
|
||||
domain = "marvinblum.de"
|
||||
)
|
||||
|
||||
var (
|
||||
@@ -19,7 +21,7 @@ var (
|
||||
analyzer *pirsch.Analyzer
|
||||
)
|
||||
|
||||
func NewTracker() *pirsch.Tracker {
|
||||
func NewTracker() (*pirsch.Tracker, context.CancelFunc) {
|
||||
logbuch.Info("Connecting to database...")
|
||||
host := os.Getenv("MB_DB_HOST")
|
||||
port := os.Getenv("MB_DB_PORT")
|
||||
@@ -38,23 +40,27 @@ func NewTracker() *pirsch.Tracker {
|
||||
|
||||
if err != nil {
|
||||
logbuch.Fatal("Error connecting to database", logbuch.Fields{"err": err})
|
||||
return nil
|
||||
return nil, nil
|
||||
}
|
||||
|
||||
if err := conn.Ping(); err != nil {
|
||||
logbuch.Fatal("Error pinging database", logbuch.Fields{"err": err})
|
||||
return nil
|
||||
return nil, nil
|
||||
}
|
||||
|
||||
store = pirsch.NewPostgresStore(conn)
|
||||
tracker := pirsch.NewTracker(store, os.Getenv("MB_TRACKING_SALT"), nil)
|
||||
tracker := pirsch.NewTracker(store, os.Getenv("MB_TRACKING_SALT"), &pirsch.TrackerConfig{
|
||||
// I don't care about traffic from my own website
|
||||
RefererDomainBlacklist: []string{domain},
|
||||
RefererDomainBlacklistIncludesSubdomains: true,
|
||||
})
|
||||
analyzer = pirsch.NewAnalyzer(store)
|
||||
processor := pirsch.NewProcessor(store)
|
||||
processor := pirsch.NewProcessor(store, nil)
|
||||
processTrackingData(processor)
|
||||
pirsch.RunAtMidnight(func() {
|
||||
cancel := pirsch.RunAtMidnight(func() {
|
||||
processTrackingData(processor)
|
||||
})
|
||||
return tracker
|
||||
return tracker, cancel
|
||||
}
|
||||
|
||||
func processTrackingData(processor *pirsch.Processor) {
|
||||
|
||||
Reference in New Issue
Block a user