X-Git-Url: https://git.mdrn.pl/wolnelektury.git/blobdiff_plain/cfbd4683aa50fb51882aa0ab825492b2dd49b142..96390ae52c2017ae4fb9a61831beeb68c808a2f6:/src/api/handlers.py diff --git a/src/api/handlers.py b/src/api/handlers.py index cee41f48a..eb18e0502 100644 --- a/src/api/handlers.py +++ b/src/api/handlers.py @@ -19,8 +19,8 @@ from api.models import BookUserData from catalogue.forms import BookImportForm from catalogue.models import Book, Tag, BookMedia, Fragment, Collection from catalogue.models.tag import prefetch_relations -from catalogue.utils import is_subscribed from librarian.cover import WLCover +from paypal.rest import user_is_subscribed from picture.models import Picture from picture.forms import PictureImportForm from social.utils import likes @@ -33,7 +33,7 @@ from . import emitters # Register our emitters API_BASE = WL_BASE = MEDIA_BASE = lazy( lambda: u'https://' + Site.objects.get_current().domain, unicode)() -SORT_KEY_SEP = ',' +SORT_KEY_SEP = '$' category_singular = { 'authors': 'author', @@ -179,7 +179,7 @@ class BookDetails(object): try: author, title, book_id = after.split(SORT_KEY_SEP) except ValueError: - return [] + return Book.objects.none() return books.filter(Q(sort_key_author__gt=author) | (Q(sort_key_author=author) & Q(sort_key__gt=title)) | (Q(sort_key_author=author) & Q(sort_key=title) & Q(id__gt=int(book_id)))) @@ -330,7 +330,7 @@ class BooksHandler(BookDetailHandler): class EpubHandler(BookDetailHandler): def read(self, request, slug): - if not is_subscribed(request.user): + if not user_is_subscribed(request.user): return rc.FORBIDDEN try: book = Book.objects.get(slug=slug) @@ -378,16 +378,13 @@ class AnonFilterBooksHandler(AnonymousBooksHandler): return None def read(self, request): + key_sep = '$' search_string = request.GET.get('search') is_lektura = self.parse_bool(request.GET.get('lektura')) is_audiobook = self.parse_bool(request.GET.get('audiobook')) preview = self.parse_bool(request.GET.get('preview')) new_api = request.GET.get('new_api') - if new_api: - key_sep = ',' - else: - key_sep = '$' after = request.GET.get('after') count = int(request.GET.get('count', 50)) books = self.order_books(Book.objects.distinct(), new_api) @@ -733,7 +730,7 @@ class UserDataHandler(BaseHandler): if not request.user.is_authenticated(): return rc.FORBIDDEN if slug is None: - return {'username': request.user.username, 'premium': is_subscribed(request.user)} + return {'username': request.user.username, 'premium': user_is_subscribed(request.user)} try: book = Book.objects.get(slug=slug) except Book.DoesNotExist: