Skip to content
Snippets Groups Projects
matomo.py 1.25 KiB
Newer Older
  • Learn to ignore specific revisions
  • anonymous's avatar
    wip
    anonymous committed
    from piwikapi.tracking import PiwikTracker
    from piwikapi.tests.request import FakeRequest
    from ckan.common import c, request
    from pylons import config
    
    anonymous's avatar
    anonymous committed
    import logging
    from ckan.plugins.toolkit import enqueue_job
    
    root's avatar
    root committed
    import ckanext.odsh.helpers_tpsh as helpers_tpsh
    
    anonymous's avatar
    wip
    anonymous committed
    
    
    root's avatar
    root committed
    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
    
    anonymous's avatar
    wip
    anonymous committed
    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)
    
    anonymous's avatar
    anonymous committed
        piwiktracker =PiwikTracker(config.get('ckanext.odsh.matomo_id'), fakerequest)
        piwiktracker.set_api_url(config.get('ckanext.odsh.matomo_url'))
    
    anonymous's avatar
    wip
    anonymous committed
        if userId:
            piwiktracker.set_visitor_id(userId)
    
        # enqueue_job(piwiktracker.do_track_page_view,[request.path_qs], queue='tracking')