diff --git a/apps/profile/middleware.py b/apps/profile/middleware.py index 6c53ed053..9d117f336 100644 --- a/apps/profile/middleware.py +++ b/apps/profile/middleware.py @@ -12,6 +12,9 @@ from apps.statistics.rstats import round_time from utils import json_functions as json class LastSeenMiddleware(object): + def __init__(self, get_response): + self.get_response = get_response + def process_response(self, request, response): if ((request.path == '/' or request.path.startswith('/reader/refresh_feeds') or @@ -38,6 +41,9 @@ class LastSeenMiddleware(object): return response class DBProfilerMiddleware: + def __init__(self, get_response): + self.get_response = get_response + def process_request(self, request): setattr(request, 'activated_segments', []) if ((request.path.startswith('/reader/feed') or @@ -85,7 +91,7 @@ class DBProfilerMiddleware: r = redis.Redis(connection_pool=settings.REDIS_STATISTICS_POOL) pipe = r.pipeline() minute = round_time(round_to=60) - for db, duration in db_times.items(): + for db, duration in list(db_times.items()): key = "DB:%s%s:%s" % (prefix, db, minute.strftime('%s')) pipe.incr("%s:c" % key) pipe.expireat("%s:c" % key, (minute + datetime.timedelta(days=2)).strftime("%s")) @@ -96,6 +102,9 @@ class DBProfilerMiddleware: class SQLLogToConsoleMiddleware: + def __init__(self, get_response): + self.get_response = get_response + def activated(self, request): return (settings.DEBUG_QUERIES or (hasattr(request, 'activated_segments') and @@ -242,23 +251,48 @@ SIMPSONS_QUOTES = [ ] class SimpsonsMiddleware: + def __init__(self, get_response): + self.get_response = get_response + def process_response(self, request, response): quote = random.choice(SIMPSONS_QUOTES) source = quote[0].replace(' ', '-') response["X-%s" % source] = quote[1] return response + + def __call__(self, request): + response = self.get_response(request) + + return response class ServerHostnameMiddleware: + + def __init__(self, get_response): + self.get_response = get_response + def process_response(self, request, response): response["X-gunicorn-server"] = settings.SERVER_NAME return response + def __call__(self, request): + response = self.get_response(request) + + return response + class TimingMiddleware: + + def __init__(self, get_response): + self.get_response = get_response + def process_request(self, request): setattr(request, 'start_time', time.time()) + def __call__(self, request): + response = self.get_response(request) + + return response BANNED_USER_AGENTS = ( 'feed reader-background', 'missing', @@ -268,6 +302,9 @@ BANNED_USERNAMES = ( ) class UserAgentBanMiddleware: + def __init__(self, get_response): + self.get_response = get_response + def process_request(self, request): user_agent = request.environ.get('HTTP_USER_AGENT', 'missing').lower() diff --git a/apps/profile/views.py b/apps/profile/views.py index a53b7400d..4019c83da 100644 --- a/apps/profile/views.py +++ b/apps/profile/views.py @@ -11,7 +11,7 @@ from django.http import HttpResponse, HttpResponseRedirect from django.contrib.sites.models import Site from django.contrib.auth.models import User from django.contrib.admin.views.decorators import staff_member_required -from django.core.urlresolvers import reverse +from django.urls import reverse from django.shortcuts import render from django.core.mail import mail_admins from django.conf import settings @@ -46,7 +46,7 @@ def set_preference(request): new_preferences = request.POST preferences = json.decode(request.user.profile.preferences) - for preference_name, preference_value in new_preferences.items(): + for preference_name, preference_value in list(new_preferences.items()): if preference_value in ['true','false']: preference_value = True if preference_value == 'true' else False if preference_name in SINGLE_FIELD_PREFS: setattr(request.user.profile, preference_name, preference_value) @@ -164,7 +164,7 @@ def set_account_settings(request): form.save() code = 1 else: - message = form.errors[form.errors.keys()[0]][0] + message = form.errors[list(form.errors.keys())[0]][0] payload = { "username": request.user.username, @@ -186,7 +186,7 @@ def set_view_setting(request): view_settings = json.decode(request.user.profile.view_settings) setting = view_settings.get(feed_id, {}) - if isinstance(setting, basestring): setting = {'v': setting} + if isinstance(setting, str): setting = {'v': setting} if feed_view_setting: setting['v'] = feed_view_setting if feed_order_setting: setting['o'] = feed_order_setting if feed_read_filter_setting: setting['r'] = feed_read_filter_setting @@ -210,7 +210,7 @@ def clear_view_setting(request): view_settings = json.decode(request.user.profile.view_settings) new_view_settings = {} removed = 0 - for feed_id, view_setting in view_settings.items(): + for feed_id, view_setting in list(view_settings.items()): if view_setting_type == 'layout' and 'l' in view_setting: del view_setting['l'] removed += 1 @@ -476,7 +476,7 @@ def payment_history(request): "created_date": user.date_joined, "last_seen_date": user.profile.last_seen_on, "last_seen_ip": user.profile.last_seen_ip, - "timezone": unicode(user.profile.timezone), + "timezone": str(user.profile.timezone), "stripe_id": user.profile.stripe_id, "paypal_email": user.profile.latest_paypal_email, "profile": user.profile, @@ -521,9 +521,9 @@ def refund_premium(request): user = User.objects.get(pk=user_id) try: refunded = user.profile.refund_premium(partial=partial) - except stripe.InvalidRequestError, e: + except stripe.InvalidRequestError as e: refunded = e - except PayPalAPIResponseError, e: + except PayPalAPIResponseError as e: refunded = e return {'code': 1 if refunded else -1, 'refunded': refunded}