summaryrefslogtreecommitdiffstats
path: root/mixpanel.go
diff options
context:
space:
mode:
Diffstat (limited to 'mixpanel.go')
-rw-r--r--mixpanel.go43
1 files changed, 43 insertions, 0 deletions
diff --git a/mixpanel.go b/mixpanel.go
new file mode 100644
index 0000000..6c370bd
--- /dev/null
+++ b/mixpanel.go
@@ -0,0 +1,43 @@
+package main
+
+import (
+ "http"
+ "encoding/base64"
+ "json"
+ "log"
+)
+
+func init() {
+ log.SetFlags(log.Ltime | log.Lshortfile)
+}
+
+func track(event, ip, id, song, user string) {
+ const token = "643bb718adc5d66de18617b4f0bf3489"
+
+ data := make(map[string]interface{})
+ data["event"] = event
+ properties := make(map[string]string)
+ properties["token"] = token
+ properties["ip"] = ip
+ properties["id"] = id
+ if song != "" {
+ properties["song"] = song
+ }
+ if user != "" {
+ properties["user"] = user
+ }
+ data["properties"] = properties
+
+ dataJSON, err := json.Marshal(data)
+ if err != nil {
+ log.Println(err)
+ return
+ }
+
+ values := make(http.Values)
+ values.Add("data", base64.StdEncoding.EncodeToString(dataJSON))
+ r, err := http.PostForm("https://api.mixpanel.com/track/", values)
+ if err == nil {
+ r.Body.Close()
+ }
+}