# -*- coding: utf-8 -*- from django.shortcuts import get_object_or_404, redirect from django.http import HttpResponseForbidden, HttpResponse from django.views.decorators.http import require_GET, require_POST from .models import Teaser, update_views_count, update_views_count_many, update_clicks_count @require_POST def show_many(request): """Обновляет статистику просмотров сразу для нескольких тизеров.""" if not request.is_ajax(): return HttpResponseForbidden('ajax only') ids = set() for _id in request.POST.getlist('ids[]'): try: ids.add(int(_id)) except ValueError as e: pass if ids: update_views_count_many(list(sorted(ids))[:100]) return HttpResponse() @require_POST def show(request, teaser_id): """Обновляет статистику просмотров.""" if not request.is_ajax(): return HttpResponseForbidden('ajax only') update_views_count(teaser_id) return HttpResponse() @require_GET def click(request, teaser_id): """Теперь просто перманентно (http 301) редиректит на основной url. Счётчик кликов не увеличивает. Оставлено на случай, если кто-то придёт по старой прокси ссылке. Раньше: Редиректит на url перехода и обновляет статистику переходов. """ teaser = get_object_or_404(Teaser, pk=teaser_id) #update_clicks_count(teaser_id) return redirect(teaser.get_url(), permanent=True)