diff --git a/comic/util.py b/comic/util.py index dbb57d5..f8f623e 100644 --- a/comic/util.py +++ b/comic/util.py @@ -40,14 +40,13 @@ class Breadcrumb: return self.name -def generate_breadcrumbs_from_path(directory=False): +def generate_breadcrumbs_from_path(directory=False, book=False): """ :type directory: Directory + :type book: ComicBook """ output = [Breadcrumb()] - prefix = b'/comic/' - last = '' if directory: folders = directory.get_path_objects() else: @@ -55,8 +54,14 @@ def generate_breadcrumbs_from_path(directory=False): for item in folders[::-1]: bc = Breadcrumb() bc.name = item.name - bc.url = prefix + urlsafe_base64_encode(item.selector.bytes) + bc.url = b'/comic/' + urlsafe_base64_encode(item.selector.bytes) output.append(bc) + if book: + bc = Breadcrumb() + bc.name = book.file_name + bc.url = b'/read/' + urlsafe_base64_encode(book.selector.bytes) + output.append(bc) + return output diff --git a/comic/views.py b/comic/views.py index 4b2ea03..ec67a05 100644 --- a/comic/views.py +++ b/comic/views.py @@ -203,13 +203,8 @@ def read_comic(request, comic_selector, page): selector = uuid.UUID(bytes=urlsafe_base64_decode(comic_selector)) book = get_object_or_404(ComicBook, selector=selector) - breadcrumbs = generate_breadcrumbs_from_path(book.directory) - #comic_file_path, comic_file_name = path.split(decoded_path) - #d = Directory.get_dir_from_path(comic_file_path) - #try: - # book = ComicBook.objects.get(file_name=comic_file_name) - #except ComicBook.DoesNotExist: - # book = ComicBook.process_comic_book(comic_file_name, d) + breadcrumbs = generate_breadcrumbs_from_path(book.directory, book) + status, _ = ComicStatus.objects.get_or_create(comic=book, user=request.user) status.unread = False status.last_read_page = page