From 9f73a33b0d989a60083f032bc4c3479e1cf8e21e Mon Sep 17 00:00:00 2001 From: "Maksim A. Boyko" Date: Sun, 28 Oct 2012 17:24:34 -0400 Subject: frontend: Add bg view (rewrote cgi-bin/bg.cgi) --- frontend/views.py | 67 ++++++++++++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 66 insertions(+), 1 deletion(-) (limited to 'frontend/views.py') diff --git a/frontend/views.py b/frontend/views.py index 60f00ef..552f0d9 100644 --- a/frontend/views.py +++ b/frontend/views.py @@ -1 +1,66 @@ -# Create your views here. +import re + +from django.conf import settings +from django.http import HttpResponse +from django.shortcuts import render_to_response + +from backend.models import SJLike +from backend.models import SJRoom +from backend.models import SJContent +from backend.models import SJSearch +from backend.models import SJUserProfile + +from backend.views import is_number +from backend.views import is_image + +from django.db.models import Q + +LIMIT = 40 + +BLOCKED_DOMAINS = { + 'dvdbeaver.com': True, + '4chan.org': True, + 'yahoo.com': True, + 'adultswim.com': True, +} + + +def bg(request): + """ + """ + query = Q(content_type='background') + if request.GET.get('start', None): + if is_number(request.GET['start']): + query &= Q(id__lt=int(request.GET['start'])) + limit = LIMIT + if request.GET.get('limit', None): + if is_number(request.GET['limit']): + limit = int(request.GET['limit']) + backgrounds = SJContent.objects.filter(query).order_by('-id')[0:limit] + + filtered_backgrounds = [] + for b in backgrounds: + s = b.settings + url = s['url'] + if not url.startswith('http:'): + continue + domain = '' + try: + domain = '.'.join(url.split('/')[2].split('.')[-2:]) + except: + continue + if domain in BLOCKED_DOMAINS: + continue + b.domain = domain + filtered_backgrounds.append(b) + + return render_to_response( + 'backgrounds.html', + { + 'server_host': settings.SERVER_HOST, + 'server_port': settings.SERVER_PORT, + 'lowest_id': backgrounds[limit - 1].id, + 'backgrounds': filtered_backgrounds, + 'domain': domain, + } + ) -- cgit v1.2.3-70-g09d2