Compare commits

...

2 Commits

Author SHA1 Message Date
bb0973917d recreate page 2025-04-23 20:49:58 +02:00
55bc1b36d1 add: docker nginx conf 2025-04-23 20:49:28 +02:00
6 changed files with 142 additions and 56 deletions

44
config/default.conf Normal file
View File

@ -0,0 +1,44 @@
server {
listen 80;
server_name localhost;
#access_log /var/log/nginx/host.access.log main;
location / {
root /usr/share/nginx/html;
index index.html index.htm;
autoindex on;
}
#error_page 404 /404.html;
# redirect server error pages to the static page /50x.html
#
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root /usr/share/nginx/html;
}
# proxy the PHP scripts to Apache listening on 127.0.0.1:80
#
#location ~ \.php$ {
# proxy_pass http://127.0.0.1;
#}
# pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
#
#location ~ \.php$ {
# root html;
# fastcgi_pass 127.0.0.1:9000;
# fastcgi_index index.php;
# fastcgi_param SCRIPT_FILENAME /scripts$fastcgi_script_name;
# include fastcgi_params;
#}
# deny access to .htaccess files, if Apache's document root
# concurs with nginx's one
#
#location ~ /\.ht {
# deny all;
#}
}

10
docker-compose.yml Normal file
View File

@ -0,0 +1,10 @@
version: "3.8"
services:
my-pictures:
image: nginx
volumes:
- ./test_out:/usr/share/nginx/html
- ./config:/etc/nginx/conf.d/
ports:
- 8089:80
networks: {}

View File

@ -62,6 +62,13 @@ class Page():
if (self._gen_exif()): if (self._gen_exif()):
return None return None
return self._exif return self._exif
def render_exif(self):
if not self.get_exif():
return None
with open(self._exif.get_absolute_path()) as f:
return f.read()
def get_raw(self): def get_raw(self):
return self._raw return self._raw

View File

@ -17,7 +17,7 @@ class Picture():
def __init__(self, picture_path: Path, page = None, raw: Path|None = None, albums_name: list[str] = None, is_repertoried: bool = True): def __init__(self, picture_path: Path, page = None, raw: Path|None = None, albums_name: list[str] = None, is_repertoried: bool = True):
self._large: Path = picture_path self._large: Path = picture_path
self._small: Path = Path(picture_path.get_absolute_path()[:-4] + "_small.jpg") 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._profile_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_name: list[str] = albums_name or [] self._albums_name: list[str] = albums_name or []
@ -39,8 +39,8 @@ class Picture():
def get_large(self): def get_large(self):
return self._large return self._large
def get_export_file(self): def get_profile_file(self):
return self._export_file return self._profile_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")

View File

@ -10,61 +10,74 @@
} }
body { body {
display: flex;
justify-content: center;
flex-direction: column;
width: 50%;
background-color: var(--bg1); background-color: var(--bg1);
margin: auto; display: flex;
margin-top: 10px; flex-direction: column;
margin-bottom: 50px; align-items: center;
color: lightgray; margin: 15% 15%;
} margin-top: 5%;
height: auto;
body * {
width: 100%;
}
.picture-container {
margin-top: 10px;
}
.picture-container-element {
margin-top: 0px;
} }
.readme { .readme {
border: 1px solid;
background-color: var(--bg2); background-color: var(--bg2);
} }
.readme-content { .picture-container {
margin: 30px;
}
.export,
.next {
margin-top: 0px;
display: block;
text-align: right;
}
.download {
margin-top: 10px;
background-color: var(--bg2); background-color: var(--bg2);
text-align: center; padding: 10px;
padding-bottom: 30px;
} }
.navigation, .picture-container-item {
.meta-picture { padding: 5px;
background-color: var(--content1);
}
img {
max-width: 100%;
height: auto;
}
.meta-picture, .navigation {
display: flex; display: flex;
flex-direction: row; flex-direction: row;
justify-content: space-between; justify-content: space-between;
width: 100%;
}
.profile {
text-align: right;
} }
a { a {
color: white; color: white;
text-decoration: none; text-decoration: none;
font-size: 1.5rem; font-size: 1.5rem;
}
@media screen and (max-width:767px) {
body {
margin: 0% 0%;
}
}
.exif, .readme {
width: 100%;
display: block;
}
.download {
width: 100%;
background-color: var(--bg2);
text-align: center;
}
.exif summary {
text-align: center;
}
.exif details {
display: flex;
justify-content: center;
background-color: var(--bg2);
} }

View File

@ -16,33 +16,45 @@
</div> </div>
{% if page._readme.exist() %} {% if page._readme.exist() %}
<div class="readme"> <div class="readme">
<div class="readme-content"> <details>
{{page.render_readme()}} <summary>
</div> README
</summary>
<div class="readme-content">
{{page.render_readme()}}
</div>
</details>
</div> </div>
{% endif %} {% endif %}
{% for picture in page._pictures %}
<div class="picture-container"> <div class="picture-container">
<div class="picture-container-element"> {% for picture in page._pictures %}
<img src='{{ picture.get_small().get_url() }}'> <div class="picture-container-item">
<a href="{{ picture.get_small().get_url() }}">
<img src='{{ picture.get_small().get_url() }}'>
</a>
<div class="meta-picture"> <div class="meta-picture">
<a href="{{ picture.get_large().get_url() }}">Large</a> <a href="{{ picture.get_large().get_url() }}">Large</a>
{% if picture._export_file.exist() %} {% if picture._profile_file.exist() %}
<a class="export" href="{{ picture.get_export_file().get_url() }}">export file</a> <a class="profile" href="{{ picture.get_profile_file().get_url() }}">Raw therapee profile</a>
{% endif %} {% endif %}
</div> </div>
</div> </div>
{% endfor %}
</div> </div>
{% endfor %} {% if page.get_raw().exist() %}
{% if page.get_raw().exist() or page.get_exif() %}
<div class="download"> <div class="download">
<h1>Download</h1> <h1>Download</h1>
{% if page.get_raw().exist() %}
<a href="{{ page.get_raw() }}">RAW</a> <a href="{{ page.get_raw() }}">RAW</a>
{% endif %} </div>
{% if page.get_exif() %} {% endif %}
<a href="{{ page.get_exif().get_url() }}">Exif</a> {% if page.get_exif() %}
{% endif %} <div class="exif">
<details>
<summary>Exif</summary>
<pre>
{{ page.render_exif() }}
</pre>
</details>
</div> </div>
{% endif %} {% endif %}
</body> </body>