From ce32be91a6b63293ba6394ecfae843daa083845e Mon Sep 17 00:00:00 2001 From: j <0x006A@0x2620.org> Date: Wed, 6 Apr 2011 17:49:33 +0200 Subject: [PATCH] add static files, allow title/director lookup, update to python-ox --- oxdata/cover/views.py | 2 +- oxdata/lookup/models.py | 5 ++--- oxdata/lookup/views.py | 20 ++++++++++++++++---- oxdata/manage.py | 0 oxdata/poster/views.py | 2 +- oxdata/static/favicon.ico | Bin 0 -> 3105 bytes oxdata/static/robots.txt | 2 ++ oxdata/urls.py | 15 +++++++++++++++ requirements.txt | 3 +-- 9 files changed, 38 insertions(+), 11 deletions(-) mode change 100644 => 100755 oxdata/manage.py create mode 100644 oxdata/static/favicon.ico create mode 100644 oxdata/static/robots.txt diff --git a/oxdata/cover/views.py b/oxdata/cover/views.py index 1c7001f..aa8ecf5 100644 --- a/oxdata/cover/views.py +++ b/oxdata/cover/views.py @@ -7,7 +7,7 @@ from django.contrib.auth.models import User from django.shortcuts import render_to_response, get_object_or_404, get_list_or_404 from django.template import RequestContext -from oxdjango.shortcuts import render_to_json_response +from ox.django.shortcuts import render_to_json_response import models diff --git a/oxdata/lookup/models.py b/oxdata/lookup/models.py index 08ce76b..1553b05 100644 --- a/oxdata/lookup/models.py +++ b/oxdata/lookup/models.py @@ -63,7 +63,7 @@ class MovieId(models.Model): id = self.imdb_id if not id: id = self.id - return '%s (%s)' % (self.title, id) + return u'%s (%s)' % (self.title, id) def updateFromWikipedia(self): if self.wikipedia_id: @@ -84,7 +84,7 @@ class MovieId(models.Model): setattr(self, key, data.get(key, '')) directors = data.get('directors', []) - self.director = ', '.join(directors) + self.director = u', '.join(directors) if not self.wikipedia_id: self.wikipedia_id = ox.web.wikipedia.getId(ox.web.wikipedia.getUrlByImdb(self.imdb_id)) if not self.wikipedia_id: @@ -153,4 +153,3 @@ class MovieId(models.Model): return json - diff --git a/oxdata/lookup/views.py b/oxdata/lookup/views.py index 2ab2eb7..5bc8de3 100644 --- a/oxdata/lookup/views.py +++ b/oxdata/lookup/views.py @@ -5,7 +5,7 @@ from django.db import models from django.db.models import Q from django.contrib.auth.models import User -from oxdjango.shortcuts import render_to_json_response +from ox.django.shortcuts import render_to_json_response import models @@ -39,9 +39,21 @@ def get_movie_id(request): def ids(request): json = {} - movie = get_movie_id(request) - if movie: - json = movie.json() + if 'title' in request.GET: + title = request.GET['title'] + director = request.GET.get('director', '') + year = request.GET.get('year', '') + movies = models.MovieId.objects.filter(title=title) + if director: + movies = movies.filter(director=director) + if year: + movies = movies.filter(year=year) + if movies.count() == 1: + json = movies[0].json() + else: + movie = get_movie_id(request) + if movie: + json = movie.json() return render_to_json_response(json) def urls(request): diff --git a/oxdata/manage.py b/oxdata/manage.py old mode 100644 new mode 100755 diff --git a/oxdata/poster/views.py b/oxdata/poster/views.py index a76c8b6..50cbcf8 100644 --- a/oxdata/poster/views.py +++ b/oxdata/poster/views.py @@ -7,7 +7,7 @@ from django.contrib.auth.models import User from django.shortcuts import render_to_response, get_object_or_404, get_list_or_404 from django.template import RequestContext -from oxdjango.shortcuts import render_to_json_response +from ox.django.shortcuts import render_to_json_response from oxdata.lookup.models import MovieId from oxdata.lookup.views import get_movie_id diff --git a/oxdata/static/favicon.ico b/oxdata/static/favicon.ico new file mode 100644 index 0000000000000000000000000000000000000000..00dfb035979aff55aa382add9b2cce9ca1b832f8 GIT binary patch literal 3105 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 literal 0 HcmV?d00001 diff --git a/oxdata/static/robots.txt b/oxdata/static/robots.txt new file mode 100644 index 0000000..1f53798 --- /dev/null +++ b/oxdata/static/robots.txt @@ -0,0 +1,2 @@ +User-agent: * +Disallow: / diff --git a/oxdata/urls.py b/oxdata/urls.py index fe7e432..a3de3be 100644 --- a/oxdata/urls.py +++ b/oxdata/urls.py @@ -1,16 +1,31 @@ +# -*- coding: utf-8 -*- +# vi:si:et:sw=4:sts=4:ts=4 +import os + from django.conf.urls.defaults import * +from ox.django.http import HttpFileResponse from django.conf import settings # Uncomment the next two lines to enable the admin: from django.contrib import admin admin.autodiscover() +def serve_static_file(path, location, content_type): + return HttpFileResponse(location, content_type=content_type) + urlpatterns = patterns('', (r'^$', 'oxdata.views.index'), (r'^poster/', include('oxdata.poster.urls')), (r'^still/$', 'oxdata.poster.views.still'), (r'^id/', include('oxdata.lookup.urls')), + (r'^robots.txt$', serve_static_file, { + 'location': os.path.join(settings.STATIC_ROOT, 'robots.txt'), + 'content_type': 'text/plain' + }), + (r'^favicon.ico$', serve_static_file, { + 'location': os.path.join(settings.STATIC_ROOT, 'favicon.ico'), + 'content_type': 'image/x-icon'}), # Uncomment the next line to enable the admin: (r'^admin/(.*)', admin.site.root), ) diff --git a/requirements.txt b/requirements.txt index e1df005..e935c59 100644 --- a/requirements.txt +++ b/requirements.txt @@ -1,6 +1,5 @@ --e svn+http://code.djangoproject.com/svn/django/branches/releases/1.2.X/#egg=django +-e svn+http://code.djangoproject.com/svn/django/branches/releases/1.3.X/#egg=django South --e bzr+http://code.0x2620.org/python-oxdjango/#egg=python-oxdjango -e bzr+http://code.0x2620.org/python-ox/#egg=python-ox chardet django-celery