X-Git-Url: https://git.mdrn.pl/wolnelektury.git/blobdiff_plain/ed884ab790d0446fae6e73f3f333d6b08c792f2a..f99929a3fa250a4d39388013b990334ae1f7c779:/src/api/handlers.py?ds=sidebyside diff --git a/src/api/handlers.py b/src/api/handlers.py index b3edaef60..d050f0fac 100644 --- a/src/api/handlers.py +++ b/src/api/handlers.py @@ -30,7 +30,7 @@ from wolnelektury.utils import re_escape from . import emitters # Register our emitters API_BASE = WL_BASE = MEDIA_BASE = lazy( - lambda: u'http://' + Site.objects.get_current().domain, unicode)() + lambda: u'https://' + Site.objects.get_current().domain, unicode)() category_singular = { @@ -401,6 +401,11 @@ class FilterBooksHandler(AnonymousBooksHandler): return QuerySetProxy(filtered_books) +class BookPreviewHandler(BookDetailHandler): + def read(self, request): + return Book.objects.filter(preview=True) + + # add categorized tags fields for Book def _tags_getter(category): @classmethod @@ -740,13 +745,14 @@ class UserLikeHandler(BaseHandler): return rc.NOT_FOUND return {'likes': likes(request.user, book)} - def create(self, request, slug, action='like'): + def create(self, request, slug): if not request.user.is_authenticated(): return rc.FORBIDDEN try: book = Book.objects.get(slug=slug) except Book.DoesNotExist: return rc.NOT_FOUND + action = request.GET.get('action', 'like') if action == 'like': book.like(request.user) elif action == 'unlike': @@ -756,7 +762,7 @@ class UserLikeHandler(BaseHandler): class BlogEntryHandler(BaseHandler): model = Entry - fields = ('title', 'lead', 'body', 'place', 'time', 'image_url', 'gallery_urls', 'type', 'key') + fields = ('title', 'lead', 'body', 'place', 'time', 'image_url', 'image_thumb', 'gallery_urls', 'type', 'key') def read(self, request): after = request.GET.get('after') @@ -770,11 +776,16 @@ class BlogEntryHandler(BaseHandler): @classmethod def image_url(cls, entry): - return entry.image.url if entry.image else None + return (WL_BASE + entry.image.url) if entry.image else None + + @classmethod + def image_thumb(cls, entry): + return MEDIA_BASE + default.backend.get_thumbnail( + entry.image, "193x193").url if entry.image else '' @classmethod def gallery_urls(cls, entry): - return [photo.url() for photo in entry.photo_set.all()] + return [WL_BASE + photo.url() for photo in entry.photo_set.all()] @classmethod def key(cls, entry):