fix: restore downloads if missing

This commit is contained in:
sarendsen
2025-05-04 18:12:16 +02:00
parent 36b1c48fdd
commit 87a33af8d1

View File

@@ -69,7 +69,7 @@ function useDownloadProvider() {
const { saveSeriesPrimaryImage } = useDownloadHelper();
const { saveImage } = useImageStorage();
const [processes, setProcesses] = useAtom<JobStatus[]>(processesAtom);
let [processes, setProcesses] = useAtom<JobStatus[]>(processesAtom);
const successHapticFeedback = useHaptic("success");
@@ -183,12 +183,22 @@ function useDownloadProvider() {
if (settings?.downloadMethod === DownloadMethod.Optimized) {
return;
}
// const response = await getSessionApi(api).getSessions({
// activeWithinSeconds: 300,
// });
const tasks = await BackGroundDownloader.checkForExistingDownloads();
// check if processes are missing
const missingProcesses = tasks
.filter((t) => !processes.some((p) => p.id === t.id))
.map((t) => {
return t.metadata;
});
processes = [...processes, ...missingProcesses];
const updatedProcesses = processes.map((p) => {
// const result = response.data.find((s) => s.Id == p.sessionId);
// if (result) {
@@ -198,7 +208,7 @@ function useDownloadProvider() {
// };
// }
// fallback. Doesn't really work for transcodes as they may be a lot smaller.
// fallback. Doesn't really work for transcodes as they may be a lot smaller.
// We make an wild guess by comparing bitrates
const task = tasks.find((s) => s.id === p.id);
if (task) {
@@ -309,6 +319,7 @@ function useDownloadProvider() {
id: process.id,
url: getDownloadUrl(process),
destination: `${baseDirectory}/${process.item.Id}.mp4`,
metadata: process,
})
.begin(() => {
setProcesses((prev) =>