mirror of
https://github.com/ajurna/cbwebreader.git
synced 2026-11-02 10:36:55 +00:00
- Removed `flake8` and `flake8-annotations` from dependencies, replaced by `ruff` for linting. - Introduced cleaner type hinting and modern Python annotations (PEP 604 style) across multiple modules. - Moved archive processing to a dedicated helper (`comic.archives`) for improved maintainability. - Updated and simplified logic for archive file retrieval, directory cleaning, and user access validation. - Improved error handling and added support for user classification restrictions in API responses.
33 lines
747 B
Python
33 lines
747 B
Python
from dataclasses import dataclass
|
|
|
|
from comic.models import ComicBook, Directory
|
|
|
|
|
|
@dataclass()
|
|
class Breadcrumb:
|
|
name: str = 'Home'
|
|
selector: str = ''
|
|
|
|
|
|
def generate_breadcrumbs_from_path(
|
|
directory: Directory | None = None,
|
|
book: ComicBook | None = None,
|
|
) -> list[Breadcrumb]:
|
|
output = [Breadcrumb()]
|
|
folders = directory.get_path_objects() if directory else []
|
|
for item in folders[::-1]:
|
|
output.append(
|
|
Breadcrumb(
|
|
name=item.name,
|
|
selector=item.selector
|
|
)
|
|
)
|
|
if book:
|
|
output.append(
|
|
Breadcrumb(
|
|
name=book.file_name,
|
|
selector=book.selector
|
|
)
|
|
)
|
|
return output
|