diff --git a/src/main.py b/src/main.py index 2905607..1e67beb 100644 --- a/src/main.py +++ b/src/main.py @@ -19,18 +19,25 @@ def scan_pages(folders: list[Path]) -> list[Page]: for folder in folders: files: list[Path] = folder.get_files() - prev: Page = Page(folder.get_absolute_path(), folder.get_name(), None, None, None) + page: Page = Page(folder.get_absolute_path(), folder.get_name(), None, prev, None) raw: Path = Path(folder.get_absolute_path(), folder.get_name() + ".NEF") images: list[Path] = [Picture(file, page=prev, raw=raw) for file in files if file.get_name().endswith(".png")] - prev.images = images + page.images = images if len(images) == 0: bar.next() continue - pages.append(prev) + + pages.append(page) + if prev is not None: + prev.next = page + prev = page + bar.next() + pages[-1].next = pages[0] + pages[0].prev = pages[-1] return pages def create_pages(pages: list[Page]) -> None: diff --git a/src/page.py b/src/page.py index 6a4ae57..6a6f056 100644 --- a/src/page.py +++ b/src/page.py @@ -24,19 +24,31 @@ class Page(): self._exif: Path = Path(self.path, "exif.txt") self._readme: Path = Path(self.path, "readme.md") self._raw: Path = Path(self.path, name + ".NEF") - self._html: Path = Path(self.path, "page.html") + self.html: Path = Path(self.path, "page.html") + self.prev: Page = prev + self.next: Page = next def _render_raw(self): if not self._raw.exist(): return None return self._raw.get_name() + def _render_prev(self): + if self.prev is None: + return None + return f"../{self.prev.name}/{self.prev.html.get_name()}" + + def _render_next(self): + if self.next is None: + return None + return f"../{self.next.name}/{self.next.html.get_name()}" + def _to_html(self) -> str|None: - html_rendered = page_template.render(exif=self._render_exif(), raw=self._render_raw(), images=self._render_images(), readme=self._render_readme()) + html_rendered = page_template.render(exif=self._render_exif(), raw=self._render_raw(), images=self._render_images(), readme=self._render_readme(), prev=self._render_prev(), next=self._render_next()) return html_rendered def create(self) -> Path: - with open(self._html.get_absolute_path(), "w") as f: + with open(self.html.get_absolute_path(), "w") as f: f.write(self._to_html()) self.created = True