From 65d950aef9f0ca4e8ef9e72d599c06d70247b8ca Mon Sep 17 00:00:00 2001 From: Violet Caulfield Date: Wed, 29 Jan 2025 05:38:09 -0600 Subject: [PATCH] idk --- api/queries/functions/images.ts | 29 ++++++++++++++++++++--------- 1 file changed, 20 insertions(+), 9 deletions(-) diff --git a/api/queries/functions/images.ts b/api/queries/functions/images.ts index efdcea21..dfc5bea2 100644 --- a/api/queries/functions/images.ts +++ b/api/queries/functions/images.ts @@ -12,10 +12,10 @@ export function fetchItemImage(itemId: string, imageType: ImageType = ImageType. if (!(await FileSystem.exists(`${Dirs.CacheDir}/images`))) await FileSystem.mkdir(`${Dirs.CacheDir}/images`) - const existingImage = await FileSystem.exists(getImageFilePath(itemId, width, height, imageType)) + const existingImage = await FileSystem.exists(getImageFilePath(itemId, width, height, imageType)); if (existingImage) - resolve(await FileSystem.readFile(getImageFilePath(itemId, width, height, imageType))); + resolve(await FileSystem.readFile(getImageFilePath(itemId, width, height, imageType), 'base64')); else getImageApi(Client.api!) .getItemImage({ @@ -30,13 +30,16 @@ export function fetchItemImage(itemId: string, imageType: ImageType = ImageType. }) .then(async ({ data }: { data : Blob }) => { - if (data.size > 0) - FileSystem.writeFile(getImageFilePath(itemId, width, height, imageType), await data.text()) - .then(async () => { - resolve(await FileSystem.readFile(getImageFilePath(itemId, width, height, imageType))); - }) - else + if (data.size > 0) { + + + FileSystem.writeFile(getImageFilePath(itemId, width, height, imageType), await blobToBase64(data), 'base64') + .then(async () => { + resolve(await FileSystem.readFile(getImageFilePath(itemId, width, height, imageType))); + }) + } else { reject(); + } }).catch((error) => { console.error(error); reject(error); @@ -46,4 +49,12 @@ export function fetchItemImage(itemId: string, imageType: ImageType = ImageType. function getImageFilePath(itemId: string, width: number, height: number, imageType?: ImageType | undefined) { return `${Dirs.CacheDir}/images/${itemId}_${imageType ? `${imageType}_` : ''}${width}x${height}.${ImageFormat.Jpg}` -} \ No newline at end of file +} + +function blobToBase64(blob : Blob) { + return new Promise((resolve, _) => { + const reader = new FileReader(); + reader.onloadend = () => resolve(reader.result as string); + reader.readAsDataURL(blob); + }); + } \ No newline at end of file