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