diff --git a/src/adapters/recognition/acoustidAdapter.js b/src/adapters/recognition/acoustidAdapter.js index b9e9176..9c49926 100644 --- a/src/adapters/recognition/acoustidAdapter.js +++ b/src/adapters/recognition/acoustidAdapter.js @@ -7,17 +7,18 @@ import recognizeAudio from '../../api/recognition/acoustidApi.js'; * @return {Promise} A promise that resolves to an array of recognition results. */ export default async function recognizeAudioFiles(audioFiles) { - const recognitionPromises = audioFiles.map((filePath) => recognizeAudio(filePath) - .catch((error) => { - // Log the error and return null - // This prevents one failed recognition from stopping the whole process + const recognitionPromises = audioFiles.map(async (filePath) => { + try { + // Attempt to recognize the audio and return an object with filePath and id + const id = await recognizeAudio(filePath); + return { filePath, id }; + } catch (error) { + // Log the error, return an object with filePath and null id console.error(`Recognition failed for file ${filePath}:`, error); - return null; - })); + return { filePath, id: null }; + } + }); - // Wait for all recognitions to resolve. This will be an array of results or null values - const recognizedAudioFiles = await Promise.all(recognitionPromises); - // Filter out unsuccessful recognitions - console.log(recognizedAudioFiles); // undefined - return recognizedAudioFiles.filter((result) => result !== null); + // This will be an array of objects with filePaths and ids or null values for ids + return Promise.all(recognitionPromises); }