core: simplify code
This commit is contained in:
parent
e27bfe74ea
commit
196ae57b2c
10
src/main.py
10
src/main.py
@ -19,14 +19,14 @@ def scan_pages(folders: list[Path]) -> list[Page]:
|
||||
for folder in folders:
|
||||
files: list[Path] = folder.get_files()
|
||||
|
||||
page: Page = Page(folder.get_absolute_path(), folder.get_name(), None, prev, None)
|
||||
page: Page = Page(folder.get_absolute_path(), folder.get_name(), prev=prev)
|
||||
|
||||
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")]
|
||||
for file in files:
|
||||
if file.get_name().endswith(".png"):
|
||||
page.add_picture(Picture(file, page=prev, raw=raw))
|
||||
|
||||
page.images = images
|
||||
|
||||
if len(images) == 0:
|
||||
if len(page.get_picture()) == 0:
|
||||
bar.next()
|
||||
continue
|
||||
|
||||
|
26
src/page.py
26
src/page.py
@ -17,17 +17,23 @@ page_template = env.get_template('page.jinja')
|
||||
|
||||
class Page():
|
||||
|
||||
def __init__(self, path: Path, name: str, images: list[Picture], prev: Page|None, next: Page|None):
|
||||
def __init__(self, path: Path, name: str, pictures: list[Picture] = None, prev: Page|None = None, next: Page|None = None):
|
||||
self.name: str = name
|
||||
self.path: Path = path
|
||||
self.images: list[Picture] = images
|
||||
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._path: Path = path
|
||||
self._pictures: list[Picture] = [] if pictures is None else pictures
|
||||
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.prev: Page = prev
|
||||
self.next: Page = next
|
||||
|
||||
def add_picture(self, picture: Picture) -> None:
|
||||
self._pictures.append(picture)
|
||||
|
||||
def get_picture(self) -> list[Picture]:
|
||||
return self._pictures
|
||||
|
||||
def _render_raw(self):
|
||||
if not self._raw.exist():
|
||||
return None
|
||||
@ -44,7 +50,8 @@ class Page():
|
||||
return f"../{self.next.name}/page.html"
|
||||
|
||||
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(), prev=self._render_prev(), next=self._render_next())
|
||||
print(self._pictures)
|
||||
html_rendered = page_template.render(page=self)
|
||||
return html_rendered
|
||||
|
||||
def create(self) -> Path:
|
||||
@ -60,9 +67,6 @@ class Page():
|
||||
html = markdown.markdown(text)
|
||||
return html
|
||||
|
||||
def _render_images(self):
|
||||
return [image.render() for image in self.images]
|
||||
|
||||
def _gen_exif(self):
|
||||
if self._raw.exist():
|
||||
if os.system(f"exiftool {self._raw.get_absolute_path()} > {self._exif.get_absolute_path()} 2>/dev/null") == 0:
|
||||
|
@ -11,6 +11,9 @@ class Path():
|
||||
self._name: str = os.path.basename(self._absolute_path)
|
||||
self._dirpath: str = os.path.dirname(self._absolute_path)
|
||||
|
||||
def __str__(self) -> str:
|
||||
return self._name
|
||||
|
||||
def get_dirpath(self):
|
||||
return self._dirpath
|
||||
|
||||
|
@ -1,3 +1,5 @@
|
||||
from __future__ import annotations
|
||||
|
||||
from PIL import Image
|
||||
import os
|
||||
|
||||
@ -7,22 +9,31 @@ from typing import TYPE_CHECKING
|
||||
|
||||
if TYPE_CHECKING:
|
||||
from page import Page
|
||||
from album import Album
|
||||
|
||||
class Picture():
|
||||
def __init__(self, picture_path: Path, page = None, raw: Path|None = None):
|
||||
self.large: Path = picture_path
|
||||
self.small: Path = Path(picture_path.get_dirpath(), picture_path.get_name()[:-4] + "_small.jpg")
|
||||
self.export_file: Path = Path(picture_path, ".out.pp3")
|
||||
self.raw: Path|None = raw
|
||||
self.page: Page = page
|
||||
def __init__(self, picture_path: Path, page = None, raw: Path|None = None, albums: list[Album] = [], is_repertoried: bool = True):
|
||||
self._large: Path = picture_path
|
||||
self._small: Path = Path(picture_path.get_absolute_path()[:-4] + "_small.jpg")
|
||||
self._export_file: Path = Path(picture_path.get_absolute_path() + ".out.pp3")
|
||||
self._raw: Path|None = raw
|
||||
self._page: Page = page
|
||||
self._albums: list[Album] = albums
|
||||
self._is_reperoried: bool = is_repertoried
|
||||
|
||||
def render(self) -> tuple[str, str, str]:
|
||||
if not self.small.exist():
|
||||
def get_small(self):
|
||||
if not self._small.exist():
|
||||
self.gen_small()
|
||||
return self.large.get_name(), self.small.get_name(), self.export_file.get_name() if self.export_file.exist() else None
|
||||
return self._small
|
||||
|
||||
def get_large(self):
|
||||
return self._large
|
||||
|
||||
def get_export_file(self):
|
||||
return self._export_file
|
||||
|
||||
def gen_small(self):
|
||||
im = Image.open(self.large.get_absolute_path()).convert("RGB")
|
||||
im.save(self.small.get_absolute_path(), quality=95, optimize=True)
|
||||
im.save(self._small.get_absolute_path(), quality=95, optimize=True)
|
||||
|
||||
|
@ -25,11 +25,11 @@ body * {
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
.image-container {
|
||||
.picture-container {
|
||||
margin-top: 10px;
|
||||
}
|
||||
|
||||
.image-container-element {
|
||||
.picture-container-element {
|
||||
margin-top: 0px;
|
||||
}
|
||||
|
||||
@ -57,7 +57,7 @@ body * {
|
||||
}
|
||||
|
||||
.navigation,
|
||||
.meta-image {
|
||||
.meta-picture {
|
||||
display: flex;
|
||||
flex-direction: row;
|
||||
justify-content: space-between;
|
||||
|
@ -7,28 +7,28 @@
|
||||
|
||||
<body>
|
||||
<div class="navigation">
|
||||
{% if prev %}
|
||||
<a href={{ prev }}>Prev</a>
|
||||
{% if page.prev %}
|
||||
<a href="../{{ page.prev.name }}/page.html">Prev</a>
|
||||
{% endif %}
|
||||
{% if next %}
|
||||
<a class="next" href={{ next }}>Next</a>
|
||||
{% if page.next %}
|
||||
<a class="next" href="../{{ page.next.name }}/page.html">Next</a>
|
||||
{% endif %}
|
||||
</div>
|
||||
{% if readme %}
|
||||
{% if page._readme.exist() %}
|
||||
<div class="readme">
|
||||
<div class="readme-content">
|
||||
{{readme}}
|
||||
{{page._render_readme()}}
|
||||
</div>
|
||||
</div>
|
||||
{% endif %}
|
||||
{% for image in images %}
|
||||
<div class="image-container">
|
||||
<div class="image-container-element">
|
||||
<img src='{{ image[1] }}'>
|
||||
<div class="meta-image">
|
||||
<a href="{{ image[0] }}">Large</a>
|
||||
{% if image|length > 2 %}
|
||||
<a class="export" href="{{ image[2] }}">export file</a>
|
||||
{% for picture in page._pictures %}
|
||||
<div class="picture-container">
|
||||
<div class="picture-container-element">
|
||||
<img src='{{ picture.get_small().get_name() }}'>
|
||||
<div class="meta-picture">
|
||||
<a href="{{ picture._large }}">Large</a>
|
||||
{% if picture._export_file.exist() %}
|
||||
<a class="export" href="{{ picture._export_file }}">export file</a>
|
||||
{% endif %}
|
||||
</div>
|
||||
</div>
|
||||
|
Loading…
Reference in New Issue
Block a user