From f59b9998994422534dc87d71ba3af4c992b0a337 Mon Sep 17 00:00:00 2001 From: Jan-Lukas Else Date: Fri, 2 Aug 2019 18:47:30 +0200 Subject: [PATCH] Save if view was made by bot --- database.go | 11 ++++++++--- migrations/3_Add_Bot.sql | 3 +++ 2 files changed, 11 insertions(+), 3 deletions(-) create mode 100644 migrations/3_Add_Bot.sql diff --git a/database.go b/database.go index 2db75f0..816fce6 100644 --- a/database.go +++ b/database.go @@ -32,7 +32,7 @@ func initDatabase() (e error) { return } e = migrateDatabase(db.sqlDB) - db.trackingStmt, e = db.sqlDB.Prepare("insert into views(url, ref, useragent) values(:url, :ref, :ua)") + db.trackingStmt, e = db.sqlDB.Prepare("insert into views(url, ref, useragent, bot) values(:url, :ref, :ua, :bot)") if e != nil { return } @@ -59,12 +59,17 @@ func trackView(urlString string, ref string, ua string) { parsedRef, _ := url.Parse(ref) ref = parsedRef.Hostname() } + bot := 0 if ua != "" { // Parse Useragent - uaName, uaVersion := user_agent.New(ua).Browser() + userAgent := user_agent.New(ua) + if userAgent.Bot() { + bot = 1 + } + uaName, uaVersion := userAgent.Browser() ua = uaName + " " + uaVersion } - _, e := db.trackingStmt.Exec(sql.Named("url", urlString), sql.Named("ref", ref), sql.Named("ua", ua)) + _, e := db.trackingStmt.Exec(sql.Named("url", urlString), sql.Named("ref", ref), sql.Named("ua", ua), sql.Named("bot", bot)) if e != nil { fmt.Println("Inserting into DB failed:", e) } diff --git a/migrations/3_Add_Bot.sql b/migrations/3_Add_Bot.sql new file mode 100644 index 0000000..fccb46c --- /dev/null +++ b/migrations/3_Add_Bot.sql @@ -0,0 +1,3 @@ +-- +migrate Up +ALTER TABLE views + ADD COLUMN bot INTEGER DEFAULT 0 NOT NULL;