From ac21bdd330d4f33ec70509695f55bf65d8af0427 Mon Sep 17 00:00:00 2001
From: Radek Czajka <radoslaw.czajka@nowoczesnapolska.org.pl>
Date: Thu, 8 Nov 2012 15:50:40 +0100
Subject: [PATCH] add cover thumb to api, fix duplicate audiobooks in api

---
 apps/api/handlers.py | 12 +++++++++---
 requirements.txt     |  2 +-
 2 files changed, 10 insertions(+), 4 deletions(-)

diff --git a/apps/api/handlers.py b/apps/api/handlers.py
index 437b3be4c..e04710f32 100644
--- a/apps/api/handlers.py
+++ b/apps/api/handlers.py
@@ -12,6 +12,7 @@ from django.core.cache import get_cache
 from django.core.urlresolvers import reverse
 from piston.handler import AnonymousBaseHandler, BaseHandler
 from piston.utils import rc
+from sorl.thumbnail import default
 
 from api.helpers import timestamp
 from api.models import Deleted
@@ -134,6 +135,11 @@ class BookDetails(object):
     def cover(cls, book):
         return MEDIA_BASE + book.cover.url if book.cover else ''
 
+    @classmethod
+    def cover_thumb(cls, book):
+        return MEDIA_BASE + default.backend.get_thumbnail(
+                    book.cover, "139x193").url
+
 
 
 class BookDetailHandler(BaseHandler, BookDetails):
@@ -143,7 +149,7 @@ class BookDetailHandler(BaseHandler, BookDetails):
     """
     allowed_methods = ['GET']
     fields = ['title', 'parent', 'children'] + Book.formats + [
-        'media', 'url', 'cover'] + [
+        'media', 'url', 'cover', 'cover_thumb'] + [
             category_plural[c] for c in book_tag_categories]
 
     @piwik_track
@@ -192,9 +198,9 @@ class AnonymousBooksHandler(AnonymousBaseHandler, BookDetails):
         if top_level:
             books = books.filter(parent=None)
         if audiobooks:
-            books = books.filter(media__type='mp3')
+            books = books.filter(media__type='mp3').distinct()
         if daisy:
-            books = books.filter(media__type='daisy')
+            books = books.filter(media__type='daisy').distinct()
 
         if books.exists():
             return books
diff --git a/requirements.txt b/requirements.txt
index c7e33c2f2..036031e93 100644
--- a/requirements.txt
+++ b/requirements.txt
@@ -6,7 +6,7 @@ South>=0.7 # migrations for django
 django-pipeline>=1.2
 django-pagination>=1.0
 django-maintenancemode>=0.10
-django-piston<=0.2.3
+django-piston==0.2.2
 #django-jsonfield
 -e git+git://github.com/bradjasper/django-jsonfield.git@2f427368ad70bf8d9a0580df58ec0eb0654d62ae#egg=django-jsonfield
 django-picklefield
-- 
2.20.1