diff --git a/enjoy/src/main/db/handlers/audios-handler.ts b/enjoy/src/main/db/handlers/audios-handler.ts index 62331c9e..086c1794 100644 --- a/enjoy/src/main/db/handlers/audios-handler.ts +++ b/enjoy/src/main/db/handlers/audios-handler.ts @@ -72,6 +72,7 @@ class AudiosHandler { params: { name?: string; coverUrl?: string; + originalText?: string; } = {} ) { let file = uri; @@ -95,19 +96,33 @@ class AudiosHandler { } } - return Audio.buildFromLocalFile(file, { - source, - ...params, - }) - .then((audio) => { - return audio.toJSON(); - }) - .catch((err) => { - return event.sender.send("on-notification", { - type: "error", - message: t("models.audio.failedToAdd", { error: err.message }), - }); + try { + const audio = await Audio.buildFromLocalFile(file, { + source, + name: params.name, + coverUrl: params.coverUrl, }); + + // create transcription if originalText is provided + const { originalText } = params; + if (originalText) { + await Transcription.create({ + targetType: "Audio", + targetId: audio.id, + targetMd5: audio.md5, + result: { + originalText, + }, + }); + } + + return audio.toJSON(); + } catch (err) { + return event.sender.send("on-notification", { + type: "error", + message: t("models.audio.failedToAdd", { error: err.message }), + }); + } } private async update( diff --git a/enjoy/src/main/db/models/audio.ts b/enjoy/src/main/db/models/audio.ts index be7b5a29..9bcadbf2 100644 --- a/enjoy/src/main/db/models/audio.ts +++ b/enjoy/src/main/db/models/audio.ts @@ -229,6 +229,12 @@ export class Audio extends Model