from piwikapi.tracking import PiwikTracker from piwikapi.tests.request import FakeRequest from ckan.common import c, request from pylons import config import logging from ckan.plugins.toolkit import enqueue_job import ckanext.odsh.helpers_tpsh as helpers_tpsh def do_if_use_matomo(func): def wrapper(*args, **kwargs): use_matomo = helpers_tpsh.use_matomo() if use_matomo: return func(*args, **kwargs) return wrapper @do_if_use_matomo def create_matomo_request(userId=None): headers = { 'HTTP_USER_AGENT': request.headers.get('User-Agent'), 'REMOTE_ADDR': request.headers.get('Host'), # 'HTTP_REFERER': 'http://referer.com/somewhere/', 'HTTP_ACCEPT_LANGUAGE': request.headers.get('Accept-Language'), 'SERVER_NAME': config.get('ckan.site_url'), 'PATH_INFO': c.environ['PATH_INFO'], # 'QUERY_STRING': 'something=bar', 'HTTPS': False, } fakerequest = FakeRequest(headers) piwiktracker =PiwikTracker(config.get('ckanext.odsh.matomo_id'), fakerequest) piwiktracker.set_api_url(config.get('ckanext.odsh.matomo_url')) if userId: piwiktracker.set_visitor_id(userId) # enqueue_job(piwiktracker.do_track_page_view,[request.path_qs], queue='tracking')