Fixes a minor bug with the visit event

- Analytics is no longer static.
This commit is contained in:
Abhay Rana 2014-10-02 13:28:39 +05:30
parent 4edb2a2053
commit 0c314e690b
2 changed files with 15 additions and 18 deletions

View File

@ -47,7 +47,7 @@ class HackerNewsApp:
self.db = set() self.db = set()
# Setup analytics # Setup analytics
Analytics.setup(args.dnt, HackerNewsApp.MIXPANEL_TOKEN) self.tracker = Analytics(args.dnt, HackerNewsApp.MIXPANEL_TOKEN)
# create an indicator applet # create an indicator applet
self.ind = appindicator.Indicator("Hacker Tray", "hacker-tray", appindicator.CATEGORY_APPLICATION_STATUS) self.ind = appindicator.Indicator("Hacker Tray", "hacker-tray", appindicator.CATEGORY_APPLICATION_STATUS)
@ -108,7 +108,7 @@ class HackerNewsApp:
launch_data['browser'] = subprocess.check_output(["xdg-settings","get","default-web-browser"]).strip() launch_data['browser'] = subprocess.check_output(["xdg-settings","get","default-web-browser"]).strip()
except subprocess.CalledProcessError as e: except subprocess.CalledProcessError as e:
launch_data['browser'] = "unknown" launch_data['browser'] = "unknown"
Analytics.track('launch', launch_data) self.tracker.track('launch', launch_data)
def toggleComments(self, widget): def toggleComments(self, widget):
"""Whether comments page is opened or not""" """Whether comments page is opened or not"""
@ -119,13 +119,13 @@ class HackerNewsApp:
webbrowser.open(HackerNewsApp.UPDATE_URL) webbrowser.open(HackerNewsApp.UPDATE_URL)
# Remove the update button once clicked # Remove the update button once clicked
self.menu.remove(widget) self.menu.remove(widget)
Analytics.visit(HackerNewsApp.UPDATE_URL) self.tracker.visit(HackerNewsApp.UPDATE_URL)
def showAbout(self, widget): def showAbout(self, widget):
"""Handle the about btn""" """Handle the about btn"""
webbrowser.open(HackerNewsApp.ABOUT_URL) webbrowser.open(HackerNewsApp.ABOUT_URL)
Analytics.visit(HackerNewsApp.ABOUT_URL) self.tracker.visit(HackerNewsApp.ABOUT_URL)
#ToDo: Handle keyboard interrupt properly #ToDo: Handle keyboard interrupt properly
def quit(self, widget, data=None): def quit(self, widget, data=None):
@ -138,7 +138,7 @@ class HackerNewsApp:
file.write(json.dumps(l)) file.write(json.dumps(l))
gtk.main_quit() gtk.main_quit()
Analytics.track('quit') self.tracker.track('quit')
def run(self): def run(self):
signal.signal(signal.SIGINT, self.quit) signal.signal(signal.SIGINT, self.quit)
@ -159,7 +159,7 @@ class HackerNewsApp:
if self.commentState: if self.commentState:
webbrowser.open(self.HN_URL_PREFIX + widget.hn_id) webbrowser.open(self.HN_URL_PREFIX + widget.hn_id)
Analytics.visit(widget.url) self.tracker.visit(widget.url)
def addItem(self, item): def addItem(self, item):
"""Adds an item to the menu""" """Adds an item to the menu"""

View File

@ -4,23 +4,20 @@ class Analytics:
# Setup analytics. # Setup analytics.
# dnt - do not track. Disables tracking if True # dnt - do not track. Disables tracking if True
# token - The mixpanel token # token - The mixpanel token
@staticmethod def __init__(self, dnt, token):
def setup(dnt, token): self.dnt = dnt
Analytics.dnt = dnt self.tracker = Mixpanel(token)
Analytics.tracker = Mixpanel(token) if(self.dnt == True):
if(dnt == True):
print "[+] Analytics disabled" print "[+] Analytics disabled"
# Track an event # Track an event
# event - string containing the event name # event - string containing the event name
# data - data related to the event, defaults to {} # data - data related to the event, defaults to {}
@staticmethod def track(self, event, data = {}):
def track(event, data = {}): if(self.dnt == False):
if(Analytics.dnt == False):
# All events are tracked anonymously # All events are tracked anonymously
Analytics.tracker.track("anonymous", event, data) self.tracker.track("anonymous", event, data)
# Track a visit to a URL # Track a visit to a URL
# The url maybe an HN submission or # The url maybe an HN submission or
# some meta-url pertaining to hackertray # some meta-url pertaining to hackertray
@staticmethod def visit(self, url):
def visit(url): self.track('visit', {"link":url})
Analytics.track('visit', url)