fix: some stuff
Some checks failed
Deploy to SFTP Server / build (push) Failing after 6m46s

This commit is contained in:
Max Richter
2025-10-24 15:53:52 +02:00
parent 1ca044fe13
commit c33691c23c
3 changed files with 19 additions and 10 deletions

View File

@@ -9,6 +9,7 @@
const iso = (d: string | Date) => { const iso = (d: string | Date) => {
if(!d) return "" if(!d) return ""
const v = toDate(d); const v = toDate(d);
if(!v) return ""
return isNaN(v.getTime()) ? "" : v.toISOString(); return isNaN(v.getTime()) ? "" : v.toISOString();
}; };

View File

@@ -12,6 +12,7 @@ Unsortierte Bilder aus unserer Wanderung durch die Picos de Europa.
import Image from "@components/Image.astro"; import Image from "@components/Image.astro";
import ImageGallery from "@components/ImageGallery.svelte" import ImageGallery from "@components/ImageGallery.svelte"
import ImageSlider from "@components/ImageSlider.svelte"
<ImageGallery client:load/> <ImageGallery client:load/>
@@ -24,9 +25,11 @@ import image1 from "images/20250527_125228.jpg"
import image16 from "images/PXL_20250527_101057540.MP.jpg" import image16 from "images/PXL_20250527_101057540.MP.jpg"
import image17 from "images/PXL_20250527_100728883.jpg" import image17 from "images/PXL_20250527_100728883.jpg"
<Image alt="" src={image1} alt="Bild einer Kuh auf einer Wiese vor dem Meer"/> <ImageSlider title="Wanderung" client:load>
<Image alt="" src={image17} alt="Person auf flysch gestein vor einer Höhle am Meer"/> <Image src={image1} alt="Bild einer Kuh auf einer Wiese vor dem Meer"/>
<Image alt="" src={image16} alt="Bild von Person in einer Höhle aus der man das Meer sieht"/> <Image src={image17} alt="Person auf flysch gestein vor einer Höhle am Meer"/>
<Image src={image16} alt="Bild von Person in einer Höhle aus der man das Meer sieht"/>
</ImageSlider>
## 28. May ## 28. May
@@ -35,8 +38,10 @@ Erster Wandertag
import image15 from "images/PXL_20250528_121633744.MP.jpg" import image15 from "images/PXL_20250528_121633744.MP.jpg"
import image19 from "images/20250528_164715.jpg" import image19 from "images/20250528_164715.jpg"
<Image alt="" src={image15} alt="15"/> <ImageSlider title="Wanderung" client:load>
<Image alt="" src={image19} alt="19"/> <Image src={image15} alt="Wir nach den ersten 300 Metern"/>
<Image src={image19} alt="Viele Bergziegen die gerne das Salz von der Haut lecken"/>
</ImageSlider>
## 29. May ## 29. May
@@ -47,8 +52,7 @@ import image12 from "images/PXL_20250530_082919731.jpg"
import image13 from "images/PXL_20250529_201559403.jpg" import image13 from "images/PXL_20250529_201559403.jpg"
<video src={videoUrl1} controls alt=""/> <video src={videoUrl1} controls alt=""/>
<Image alt="" src={image12} alt="12"/> <Image alt="" src={image12} alt="Endlich am Refugio angekommen"/>
<Image alt="" src={image13} alt="13"/>
## 30-31. May ## 30-31. May

View File

@@ -1,6 +1,7 @@
import { rgbaToThumbHash } from "thumbhash"; import { rgbaToThumbHash } from "thumbhash";
import ExifReader from "exifreader"; import ExifReader from "exifreader";
import type { ImageMetadata } from "astro"; import type { ImageMetadata } from "astro";
import { readFile } from "node:fs/promises";
import sharp from "sharp"; import sharp from "sharp";
export async function generateThumbHash( export async function generateThumbHash(
@@ -72,23 +73,26 @@ const allowedExif = [
]; ];
export async function getExifData(image: ImageMetadata) { export async function getExifData(image: ImageMetadata) {
if (image.format === "svg") return undefined; // SVGs don't have EXIF data") if (image.format === "svg") return undefined; // SVGs don't have EXIF data
const imagePath = (image as ImageMetadata & { fsPath: string }).fsPath ?? const imagePath = (image as ImageMetadata & { fsPath: string }).fsPath ??
image.src; image.src;
if (!imagePath) return undefined; if (!imagePath) return undefined;
try { try {
let buffer: ArrayBuffer; let buffer: ArrayBufferLike;
if (imagePath.startsWith("https://") || imagePath.startsWith("http://")) { if (imagePath.startsWith("https://") || imagePath.startsWith("http://")) {
const res = await fetch(imagePath); const res = await fetch(imagePath);
buffer = await res.arrayBuffer(); buffer = await res.arrayBuffer();
} else { } else {
buffer = await sharp(imagePath).toBuffer() as unknown as ArrayBuffer; const b = await readFile(imagePath);
buffer = b.buffer;
} }
const tags = await ExifReader.load(buffer, { async: true }); const tags = await ExifReader.load(buffer, { async: true });
if (!buffer) return undefined;
const out: Record<string, any> = {}; const out: Record<string, any> = {};
let hasExif = false; let hasExif = false;