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/davecgh/go-spew v1.1.1 // indirect
|
||||||
github.com/emvi/api-go v0.2.2
|
github.com/emvi/api-go v0.2.2
|
||||||
github.com/emvi/logbuch v1.1.1
|
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/go-sql-driver/mysql v1.5.0 // indirect
|
||||||
github.com/gorilla/mux v1.7.4
|
github.com/gorilla/mux v1.7.4
|
||||||
github.com/gosimple/slug v1.9.0
|
github.com/gosimple/slug v1.9.0
|
||||||
github.com/jmoiron/sqlx v1.2.0
|
|
||||||
github.com/kr/pretty v0.1.0 // indirect
|
github.com/kr/pretty v0.1.0 // indirect
|
||||||
github.com/lib/pq v1.8.0
|
github.com/lib/pq v1.8.0
|
||||||
github.com/rs/cors v1.7.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/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 h1:poBGNbHy/nB95oNoqLKAaJoBrcKxTO0W9DhMijKEkkU=
|
||||||
github.com/emvi/logbuch v1.1.1/go.mod h1:J2Wgbr3BuSc1JO+D2MBVh6q3WPVSK5GzktwWz8pvkKw=
|
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 h1:k5OJwgE8/Zdq7raQNRF4aNHxWxPq7En51gWMMEFzinA=
|
||||||
github.com/emvi/pirsch v1.2.0/go.mod h1:GDijqLHM331iWtmDmc7th19RxDrZadRkKoNvd9/kDX8=
|
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.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 h1:ozyZYNQW3x3HtqT1jira07DN2PArx2v7/mN66gGcHOs=
|
||||||
github.com/go-sql-driver/mysql v1.5.0/go.mod h1:DCzpHaOWr8IXmIStZouvnhqoel9Qv2LBy8hT2VhHyBg=
|
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/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 h1:X5PMW56eZitiTeO7tKzZxFCSpbFZJtkMMooicw2us9A=
|
||||||
github.com/lib/pq v1.0.0/go.mod h1:5WUZQaWbwv1U+lTReE5YruASi9Al49XbQIvNi/34Woo=
|
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 h1:9xohqzkUwzR4Ga4ivdTcawVS89YSDVxXMa3xJX3cGzg=
|
||||||
github.com/lib/pq v1.8.0/go.mod h1:AlVN5x4E4T544tWzH6hKfbfQvm3HdbOxrmggDNAPY9o=
|
github.com/lib/pq v1.8.0/go.mod h1:AlVN5x4E4T544tWzH6hKfbfQvm3HdbOxrmggDNAPY9o=
|
||||||
github.com/mattn/go-sqlite3 v1.9.0 h1:pDRiWfl+++eC2FEFRy6jXmQlvp4Yh3z1MJKg4UeYM/4=
|
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)
|
return c.Handler(router)
|
||||||
}
|
}
|
||||||
|
|
||||||
func start(handler http.Handler) {
|
func start(handler http.Handler, trackingCancel context.CancelFunc) {
|
||||||
logbuch.Info("Starting server...")
|
logbuch.Info("Starting server...")
|
||||||
var server http.Server
|
var server http.Server
|
||||||
server.Handler = handler
|
server.Handler = handler
|
||||||
@@ -220,6 +220,7 @@ func start(handler http.Handler) {
|
|||||||
signal.Notify(sigint, os.Interrupt)
|
signal.Notify(sigint, os.Interrupt)
|
||||||
<-sigint
|
<-sigint
|
||||||
logbuch.Info("Shutting down server...")
|
logbuch.Info("Shutting down server...")
|
||||||
|
trackingCancel()
|
||||||
tracker.Stop()
|
tracker.Stop()
|
||||||
ctx, _ := context.WithTimeout(context.Background(), shutdownTimeout)
|
ctx, _ := context.WithTimeout(context.Background(), shutdownTimeout)
|
||||||
|
|
||||||
@@ -238,10 +239,11 @@ func start(handler http.Handler) {
|
|||||||
func main() {
|
func main() {
|
||||||
configureLog()
|
configureLog()
|
||||||
logEnvConfig()
|
logEnvConfig()
|
||||||
tracker = tracking.NewTracker()
|
var trackingCancel context.CancelFunc
|
||||||
|
tracker, trackingCancel = tracking.NewTracker()
|
||||||
tplCache = tpl.NewCache()
|
tplCache = tpl.NewCache()
|
||||||
blogInstance = blog.NewBlog(tplCache)
|
blogInstance = blog.NewBlog(tplCache)
|
||||||
router := setupRouter()
|
router := setupRouter()
|
||||||
corsConfig := configureCors(router)
|
corsConfig := configureCors(router)
|
||||||
start(corsConfig)
|
start(corsConfig, trackingCancel)
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,6 +1,7 @@
|
|||||||
package tracking
|
package tracking
|
||||||
|
|
||||||
import (
|
import (
|
||||||
|
"context"
|
||||||
"database/sql"
|
"database/sql"
|
||||||
"fmt"
|
"fmt"
|
||||||
"github.com/emvi/logbuch"
|
"github.com/emvi/logbuch"
|
||||||
@@ -12,6 +13,7 @@ import (
|
|||||||
|
|
||||||
const (
|
const (
|
||||||
connectionString = `host=%s port=%s user=%s password=%s dbname=%s sslmode=%s sslcert=%s sslkey=%s sslrootcert=%s connectTimeout=%s timezone=%s`
|
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 (
|
var (
|
||||||
@@ -19,7 +21,7 @@ var (
|
|||||||
analyzer *pirsch.Analyzer
|
analyzer *pirsch.Analyzer
|
||||||
)
|
)
|
||||||
|
|
||||||
func NewTracker() *pirsch.Tracker {
|
func NewTracker() (*pirsch.Tracker, context.CancelFunc) {
|
||||||
logbuch.Info("Connecting to database...")
|
logbuch.Info("Connecting to database...")
|
||||||
host := os.Getenv("MB_DB_HOST")
|
host := os.Getenv("MB_DB_HOST")
|
||||||
port := os.Getenv("MB_DB_PORT")
|
port := os.Getenv("MB_DB_PORT")
|
||||||
@@ -38,23 +40,27 @@ func NewTracker() *pirsch.Tracker {
|
|||||||
|
|
||||||
if err != nil {
|
if err != nil {
|
||||||
logbuch.Fatal("Error connecting to database", logbuch.Fields{"err": err})
|
logbuch.Fatal("Error connecting to database", logbuch.Fields{"err": err})
|
||||||
return nil
|
return nil, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
if err := conn.Ping(); err != nil {
|
if err := conn.Ping(); err != nil {
|
||||||
logbuch.Fatal("Error pinging database", logbuch.Fields{"err": err})
|
logbuch.Fatal("Error pinging database", logbuch.Fields{"err": err})
|
||||||
return nil
|
return nil, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
store = pirsch.NewPostgresStore(conn)
|
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)
|
analyzer = pirsch.NewAnalyzer(store)
|
||||||
processor := pirsch.NewProcessor(store)
|
processor := pirsch.NewProcessor(store, nil)
|
||||||
processTrackingData(processor)
|
processTrackingData(processor)
|
||||||
pirsch.RunAtMidnight(func() {
|
cancel := pirsch.RunAtMidnight(func() {
|
||||||
processTrackingData(processor)
|
processTrackingData(processor)
|
||||||
})
|
})
|
||||||
return tracker
|
return tracker, cancel
|
||||||
}
|
}
|
||||||
|
|
||||||
func processTrackingData(processor *pirsch.Processor) {
|
func processTrackingData(processor *pirsch.Processor) {
|
||||||
|
|||||||
Reference in New Issue
Block a user