From 688863d16e3601aa34f961f7e26cf1527c31ab76 Mon Sep 17 00:00:00 2001 From: DebaucheryLibrarian Date: Fri, 5 Feb 2021 03:37:04 +0100 Subject: [PATCH] Catching media storage errors to prevent full crash. --- src/media.js | 42 +++++++++++++++++++++++------------------- 1 file changed, 23 insertions(+), 19 deletions(-) diff --git a/src/media.js b/src/media.js index a6258360..f864e31a 100644 --- a/src/media.js +++ b/src/media.js @@ -731,29 +731,33 @@ async function associateReleaseMedia(releases, type = 'release') { return; } - const storedMedias = await storeMedias(baseMedias); - const storedMediasById = itemsByKey(storedMedias, 'id'); + try { + const storedMedias = await storeMedias(baseMedias); + const storedMediasById = itemsByKey(storedMedias, 'id'); - const associations = Object - .entries(baseMediasByReleaseId) - .reduce((acc, [releaseId, releaseBaseMedias]) => { - releaseBaseMedias.forEach((baseMedia) => { - const media = storedMediasById[baseMedia.id]; + const associations = Object + .entries(baseMediasByReleaseId) + .reduce((acc, [releaseId, releaseBaseMedias]) => { + releaseBaseMedias.forEach((baseMedia) => { + const media = storedMediasById[baseMedia.id]; - if (media) { - acc.push({ - [`${type}_id`]: releaseId, - media_id: media.use || media.entry.id, - }); - } - }); + if (media) { + acc.push({ + [`${type}_id`]: releaseId, + media_id: media.use || media.entry.id, + }); + } + }); - return acc; - }, []) - .filter(Boolean); + return acc; + }, []) + .filter(Boolean); - if (associations.length > 0) { - await bulkInsert(`${type}s_${role}`, associations, false); + if (associations.length > 0) { + await bulkInsert(`${type}s_${role}`, associations, false); + } + } catch (error) { + logger.error(`Failed to store ${type} ${role}: ${error.message}`); } }, Promise.resolve()); }