feat: add thumbhashes to images closes #6
This commit is contained in:
@@ -3,6 +3,7 @@ import { parse, stringify } from "yaml";
|
||||
import { createCrud } from "@lib/crud.ts";
|
||||
import { extractHashTags, formatDate } from "@lib/string.ts";
|
||||
import { fixRenderedMarkdown } from "@lib/helpers.ts";
|
||||
import { getThumbhash } from "@lib/cache/image.ts";
|
||||
|
||||
export type Series = {
|
||||
id: string;
|
||||
@@ -15,6 +16,7 @@ export type Series = {
|
||||
image: string;
|
||||
author: string;
|
||||
rating: number;
|
||||
thumbnail?: string;
|
||||
status: "not-seen" | "watch-again" | "finished";
|
||||
};
|
||||
};
|
||||
@@ -98,9 +100,23 @@ export function parseSeries(original: string, id: string): Series {
|
||||
const crud = createCrud<Series>({
|
||||
prefix: "Media/series/",
|
||||
parse: parseSeries,
|
||||
hasThumbnails: true,
|
||||
});
|
||||
|
||||
export const getSeries = crud.read;
|
||||
export const getSeries = (id: string) =>
|
||||
crud.read(id).then(async (serie) => {
|
||||
const imageUrl = serie.meta?.image;
|
||||
if (!imageUrl) return serie;
|
||||
const thumbhash = await getThumbhash({ url: imageUrl });
|
||||
if (!thumbhash) return serie;
|
||||
return {
|
||||
...serie,
|
||||
meta: {
|
||||
...serie.meta,
|
||||
thumbnail: btoa(String.fromCharCode(...thumbhash)),
|
||||
},
|
||||
};
|
||||
});
|
||||
export const getAllSeries = crud.readAll;
|
||||
export const createSeries = (series: Series) => {
|
||||
const content = renderSeries(series);
|
||||
|
||||
Reference in New Issue
Block a user