From 11b880863cc92eef2815458ae45d133b2fa35068 Mon Sep 17 00:00:00 2001 From: Fredrik Burmester Date: Mon, 2 Dec 2024 11:34:49 +0100 Subject: [PATCH] Revert "feat: cache item size" This reverts commit aec172d8f564a1d8f99688830dd9e31350d5a2fd. --- utils/download.ts | 81 ++++++++++++++++------------------------------- 1 file changed, 28 insertions(+), 53 deletions(-) diff --git a/utils/download.ts b/utils/download.ts index 73df98e0..1c0dc9eb 100644 --- a/utils/download.ts +++ b/utils/download.ts @@ -1,71 +1,46 @@ -import { getPrimaryImageUrlById } from "@/utils/jellyfin/image/getPrimaryImageUrlById"; -import { BaseItemDto } from "@jellyfin/sdk/lib/generated-client"; +import {getPrimaryImageUrlById} from "@/utils/jellyfin/image/getPrimaryImageUrlById"; +import {BaseItemDto} from "@jellyfin/sdk/lib/generated-client"; import useImageStorage from "@/hooks/useImageStorage"; -import { apiAtom } from "@/providers/JellyfinProvider"; -import { useAtom } from "jotai"; -import { storage } from "@/utils/mmkv"; -import * as FileSystem from "expo-file-system"; -import { FileInfo } from "expo-file-system"; -import { getDownloadedFileUrl } from "@/hooks/useDownloadedFileOpener"; +import {apiAtom} from "@/providers/JellyfinProvider"; +import {useAtom} from "jotai"; +import {storage} from "@/utils/mmkv"; +import {getDownloadedFileUrl} from "@/hooks/useDownloadedFileOpener"; +import * as FileSystem from 'expo-file-system' +import {FileInfo} from "expo-file-system"; const useDownloadHelper = () => { const [api] = useAtom(apiAtom); - const { saveImage } = useImageStorage(); + const {saveImage} = useImageStorage(); const saveSeriesPrimaryImage = async (item: BaseItemDto) => { - if ( - item.Type === "Episode" && - item.SeriesId && - !storage.getString(item.SeriesId) - ) { - await saveImage( - item.SeriesId, - getPrimaryImageUrlById({ api, id: item.SeriesId }) - ); + if (item.Type === "Episode" && item.SeriesId && !storage.getString(item.SeriesId)) { + await saveImage(item.SeriesId, getPrimaryImageUrlById({ api, id: item.SeriesId })) } - }; + } const getDownloadSize = async (...items: BaseItemDto[]) => { const sizes: number[] = []; - await Promise.all( - items.map((item) => { - return new Promise(async (resolve, reject) => { - const cacheKey = `downloadSize_${item.Id}`; - const cachedSize = storage.getNumber(cacheKey); - - if (cachedSize !== undefined && cachedSize !== null) { - sizes.push(cachedSize); - resolve(sizes); - return; - } - - const url = await getDownloadedFileUrl(item.Id!); - if (url) { - const fileInfo: FileInfo = await FileSystem.getInfoAsync(url); - - if (fileInfo.exists) { - sizes.push(fileInfo.size); - storage.set(cacheKey, fileInfo.size); // Cache the size - resolve(sizes); - } else { - reject(new Error(`File does not exist at ${url}.`)); - } - } else { - reject(new Error("Failed to get download URL.")); - } - }); + await Promise.all(items.map(item => { + return new Promise(async (resolve, reject) => { + const url = await getDownloadedFileUrl(item.Id!); + if (url) { + const fileInfo: FileInfo = await FileSystem.getInfoAsync(url); + sizes.push(fileInfo.size); + resolve(sizes); + } else reject(); }) - ); + })); const size = sizes.reduce((sum, size) => sum + size, 0); - const gb = size / 1e9; + const gb = size / 1e+9; - if (gb >= 1) return `${gb.toFixed(2)} GB`; + if (gb >= 1) + return `${gb.toFixed(2)} GB`; return `${(size / 1024 / 1024).toFixed(2)} MB`; - }; + } - return { saveSeriesPrimaryImage, getDownloadSize }; -}; + return { saveSeriesPrimaryImage, getDownloadSize } +} -export default useDownloadHelper; +export default useDownloadHelper; \ No newline at end of file