fix: add more remux debug logging

This commit is contained in:
Fredrik Burmester
2024-11-29 09:05:40 +01:00
parent 5292d89303
commit b84e95dc54

View File

@@ -113,29 +113,47 @@ export const useRemuxHlsToMp4 = () => {
FFmpegKit.executeAsync(command, async (session) => { FFmpegKit.executeAsync(command, async (session) => {
try { try {
const returnCode = await session.getReturnCode(); const returnCode = await session.getReturnCode();
const startTime = new Date();
let endTime;
if (returnCode.isValueSuccess()) { if (returnCode.isValueSuccess()) {
endTime = new Date();
writeToLog(
"INFO",
`useRemuxHlsToMp4 ~ remuxing completed successfully for item: ${
item.Name
}, start time: ${startTime.toISOString()}, end time: ${endTime.toISOString()}, duration: ${
(endTime.getTime() - startTime.getTime()) / 1000
}s`
);
if (!item) throw new Error("Item is undefined"); if (!item) throw new Error("Item is undefined");
await saveDownloadedItemInfo(item); await saveDownloadedItemInfo(item);
toast.success("Download completed"); toast.success("Download completed");
writeToLog(
"INFO",
`useRemuxHlsToMp4 ~ remuxing completed successfully for item: ${item.Name}`
);
await queryClient.invalidateQueries({ await queryClient.invalidateQueries({
queryKey: ["downloadedItems"], queryKey: ["downloadedItems"],
}); });
resolve(); resolve();
} else if (returnCode.isValueError()) { } else if (returnCode.isValueError()) {
endTime = new Date();
const allLogs = session.getAllLogsAsString();
writeToLog( writeToLog(
"ERROR", "ERROR",
`useRemuxHlsToMp4 ~ remuxing failed for item: ${item.Name}` `useRemuxHlsToMp4 ~ remuxing failed for item: ${
item.Name
}, start time: ${startTime.toISOString()}, end time: ${endTime.toISOString()}, duration: ${
(endTime.getTime() - startTime.getTime()) / 1000
}s. All logs: ${allLogs}`
); );
reject(new Error("Remuxing failed")); reject(new Error("Remuxing failed"));
} else if (returnCode.isValueCancel()) { } else if (returnCode.isValueCancel()) {
endTime = new Date();
writeToLog( writeToLog(
"INFO", "INFO",
`useRemuxHlsToMp4 ~ remuxing was canceled for item: ${item.Name}` `useRemuxHlsToMp4 ~ remuxing was canceled for item: ${
item.Name
}, start time: ${startTime.toISOString()}, end time: ${endTime.toISOString()}, duration: ${
(endTime.getTime() - startTime.getTime()) / 1000
}s`
); );
resolve(); resolve();
} }
@@ -143,16 +161,24 @@ export const useRemuxHlsToMp4 = () => {
setProcesses((prev) => { setProcesses((prev) => {
return prev.filter((process) => process.itemId !== item.Id); return prev.filter((process) => process.itemId !== item.Id);
}); });
} catch (error) { } catch (e) {
const error = e as Error;
const errorLog = `Error: ${error.message}, Stack: ${error.stack}`;
writeToLog(
"ERROR",
`useRemuxHlsToMp4 ~ Exception during remuxing for item: ${item.Name}, ${errorLog}`
);
reject(error); reject(error);
} }
}); });
}); });
} catch (error) { } catch (e) {
const error = e as Error;
const errorLog = `Error: ${error.message}, Stack: ${error.stack}`;
console.error("Failed to remux:", error); console.error("Failed to remux:", error);
writeToLog( writeToLog(
"ERROR", "ERROR",
`useRemuxHlsToMp4 ~ remuxing failed for item: ${item.Name}` `useRemuxHlsToMp4 ~ remuxing failed for item: ${item.Name}, ${errorLog}`
); );
setProcesses((prev) => { setProcesses((prev) => {
return prev.filter((process) => process.itemId !== item.Id); return prev.filter((process) => process.itemId !== item.Id);