def do_track_page_view(self, headers, reqtime=None, title=None, userid=None, session_key=None, status_code=None, fail_silently=PIWIK_FAIL_SILENTLY): """ Actually record the page view with Piwik: do the actual work with kwargs from self.get_track_kwargs """ request = FakeRequest(headers) pt = PiwikTracker(PIWIK_SITEID, request) pt.set_api_url(PIWIK_URL) pt.set_token_auth(PIWIK_TOKEN) pt.set_ip(get_real_ip(request)) if session_key: visitor_id = hashlib.sha512(session_key).hexdigest()[0:PiwikTracker.LENGTH_VISITOR_ID] pt.set_visitor_id(visitor_id) if reqtime: dt = datetime.datetime.fromtimestamp(reqtime, pytz.utc) pt.set_force_visit_date_time(dt) if userid: pt.set_custom_variable(1, 'userid', userid, scope='visit') if status_code: pt.set_custom_variable(2, 'status_code', status_code, scope='page') if PIWIK_FORCE_HOST: pt._set_host(PIWIK_FORCE_HOST) try: pt.do_track_page_view(title) except urllib_errors: if not fail_silently: raise
def func_wrapper(request, *args, **kwargs): if check_piwik_settings(): try: piwik = PiwikTracker(settings.PIWIK['SITE_ID'], request) piwik.set_api_url('%s/piwik.php' % settings.PIWIK['URL']) piwik.set_ip(get_client_ip(request)) piwik.set_token_auth(settings.PIWIK['AUTH_TOKEN']) if request.user.is_authenticated: piwik.set_visitor_id(request.user.unique_visitor_id) piwik.do_track_page_view(title) except HTTPError as e: sys.stderr.write(str(e)) sys.stderr.write('\n') return func(request, *args, **kwargs)
def do_track_page_view(self, headers, reqtime=None, title=None, userid=None, session_key=None, status_code=None, fail_silently=PIWIK_FAIL_SILENTLY): """ Actually record the page view with Piwik: do the actual work with kwargs from self.get_track_kwargs """ request = FakeRequest(headers) pt = PiwikTracker(PIWIK_SITEID, request) pt.set_api_url(PIWIK_URL) pt.set_token_auth(PIWIK_TOKEN) pt.set_ip(get_real_ip(request)) if session_key: visitor_id = hashlib.sha512( session_key).hexdigest()[0:PiwikTracker.LENGTH_VISITOR_ID] pt.set_visitor_id(visitor_id) if reqtime: dt = datetime.datetime.fromtimestamp(reqtime, pytz.utc) pt.set_force_visit_date_time(dt) if userid: pt.set_custom_variable(1, 'userid', userid, scope='visit') if status_code: pt.set_custom_variable(2, 'status_code', status_code, scope='page') if PIWIK_FORCE_HOST: pt._set_host(PIWIK_FORCE_HOST) try: pt.do_track_page_view(title) except urllib_errors: if not fail_silently: raise