fix: some stuff
This commit is contained in:
@@ -1,19 +1,11 @@
|
||||
import { rgbaToThumbHash } from "thumbhash";
|
||||
import ExifReader from 'exifreader';
|
||||
import ExifReader from "exifreader";
|
||||
import type { ImageMetadata } from "astro";
|
||||
import sharp from "sharp";
|
||||
|
||||
let s: typeof import("sharp") | undefined;
|
||||
async function getSharp(): Promise<typeof import("sharp") | undefined> {
|
||||
if (s) return s;
|
||||
s = (await import("sharp")).default;
|
||||
return s;
|
||||
}
|
||||
|
||||
export async function generateThumbHash(image: ImageMetadata & { fsPath?: string }) {
|
||||
|
||||
const sharp = await getSharp();
|
||||
if (!sharp) return;
|
||||
|
||||
export async function generateThumbHash(
|
||||
image: ImageMetadata & { fsPath?: string },
|
||||
) {
|
||||
const scaleFactor = 100 / Math.max(image.width, image.height);
|
||||
|
||||
const smallWidth = Math.floor(image.width * scaleFactor);
|
||||
@@ -30,10 +22,9 @@ export async function generateThumbHash(image: ImageMetadata & { fsPath?: string
|
||||
const buffer = rgbaToThumbHash(smallWidth, smallHeight, smallImg);
|
||||
return Buffer.from(buffer).toString("base64");
|
||||
} catch (error) {
|
||||
console.log(`Could not generate thumbhash for ${image.fsPath}`, error)
|
||||
return ""
|
||||
console.log(`Could not generate thumbhash for ${image.fsPath}`, error);
|
||||
return "";
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
const allowedExif = [
|
||||
@@ -54,11 +45,8 @@ const allowedExif = [
|
||||
|
||||
export async function getExifData(image: ImageMetadata) {
|
||||
if (image.format === "svg") return undefined; // SVGs don't have EXIF data")
|
||||
const sharp = await getSharp();
|
||||
if (!sharp) return;
|
||||
const imagePath = (image as ImageMetadata & { fsPath: string }).fsPath;
|
||||
try {
|
||||
|
||||
const buffer = await sharp(imagePath).toBuffer();
|
||||
|
||||
const tags = await ExifReader.load(buffer, { async: true });
|
||||
@@ -74,9 +62,7 @@ export async function getExifData(image: ImageMetadata) {
|
||||
|
||||
return hasExif ? out : undefined;
|
||||
} catch (error) {
|
||||
|
||||
console.log(`Error reading EXIF data from ${imagePath}`, error);
|
||||
return undefined
|
||||
return undefined;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -1,25 +1,26 @@
|
||||
import MarkdownIt from 'markdown-it';
|
||||
import MarkdownIt from "markdown-it";
|
||||
const parser = new MarkdownIt();
|
||||
|
||||
export default function markdownToText(markdown: string): string {
|
||||
export default function markdownToText(markdown: string = "<empty>"): string {
|
||||
return parser
|
||||
.render(markdown)
|
||||
.split('\n')
|
||||
.split("\n")
|
||||
.map((str) => str.trim())
|
||||
.map((str) => {
|
||||
return str.replace(/<\/?[^>]+(>|$)/g, '').split('\n');
|
||||
return str.replace(/<\/?[^>]+(>|$)/g, "").split("\n");
|
||||
})
|
||||
.flat()
|
||||
.filter((str) => !str.startsWith("import")
|
||||
&& !str.startsWith("export")
|
||||
&& !str.startsWith("#")
|
||||
&& !str.startsWith("const")
|
||||
&& !str.startsWith("function")
|
||||
&& !str.startsWith("export")
|
||||
&& !str.startsWith("import")
|
||||
&& !str.startsWith("<")
|
||||
&& !str.startsWith("let")
|
||||
&& str.length > 0
|
||||
.filter((str) =>
|
||||
!str.startsWith("import") &&
|
||||
!str.startsWith("export") &&
|
||||
!str.startsWith("#") &&
|
||||
!str.startsWith("const") &&
|
||||
!str.startsWith("function") &&
|
||||
!str.startsWith("export") &&
|
||||
!str.startsWith("import") &&
|
||||
!str.startsWith("<") &&
|
||||
!str.startsWith("let") &&
|
||||
str.length > 0
|
||||
)
|
||||
.join(' ');
|
||||
.join(" ");
|
||||
}
|
||||
|
||||
@@ -41,7 +41,6 @@ export async function listResource(
|
||||
}
|
||||
} catch (_e) {
|
||||
console.log("Failed to get: ", url);
|
||||
console.log(_e);
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user