-# -*- coding: utf-8 -*-
# This file is part of Wolnelektury, licensed under GNU Affero GPLv3 or later.
# Copyright © Fundacja Nowoczesna Polska. See NOTICE for more information.
#
from datetime import datetime
import logging
from functools import update_wrapper
-import urllib
+from urllib.parse import urlencode
from random import random
from inspect import isclass
-from django.utils.encoding import force_str
+from django.utils.encoding import force_bytes
from .tasks import track_request
def piwik_url(request):
- return urllib.urlencode(dict(
+ return urlencode(dict(
idsite=getattr(settings, 'PIWIK_SITE_ID', '0'),
rec=1,
- url=force_str('http://%s%s' % (request.META['HTTP_HOST'], request.path)),
+ url=force_bytes('http://%s%s' % (request.META['HTTP_HOST'], request.path)),
rand=int(random() * 0x10000),
apiv=PIWIK_API_VERSION,
- urlref=force_str(request.META.get('HTTP_REFERER', '')),
+ urlref=force_bytes(request.META.get('HTTP_REFERER', '')),
ua=request.META.get('HTTP_USER_AGENT', ''),
lang=request.META.get('HTTP_ACCEPT_LANGUAGE', ''),
token_auth=getattr(settings, 'PIWIK_TOKEN', ''),
def wrap(request, *args, **kwargs):
if getattr(request, 'piwik_track', True):
track_request.delay(piwik_url(request))
- return view(self, request, *args, **kwargs)
+ return view(request, *args, **kwargs)
update_wrapper(wrap, view)
return wrap