work on audio

This commit is contained in:
Alex Yatskov 2017-07-10 16:48:26 -07:00
parent e2373345a4
commit 1ed8997240
2 changed files with 16 additions and 18 deletions

View File

@ -32,8 +32,7 @@ class Database {
if (db.verno !== this.version) {
await db.delete();
}
}
catch(error) {
} catch(e) {
// NOP
}
}

View File

@ -40,7 +40,7 @@ function clozeBuild(sentence, source) {
* Audio
*/
function audioBuildUrl(definition, mode, cache={}) {
async function audioBuildUrl(definition, mode, cache={}) {
if (mode === 'jpod101') {
let kana = definition.reading;
let kanji = definition.expression;
@ -103,7 +103,7 @@ function audioBuildUrl(definition, mode, cache={}) {
}
});
} else {
return Promise.reject('unsupported audio source');
return Promise.resolve();
}
}
@ -121,16 +121,7 @@ function audioBuildFilename(definition) {
}
}
function audioInject(definition, fields, mode) {
if (mode === 'disabled') {
return Promise.resolve(true);
}
const filename = audioBuildFilename(definition);
if (!filename) {
return Promise.resolve(true);
}
async function audioInject(definition, fields, mode) {
let usesAudio = false;
for (const name in fields) {
if (fields[name].includes('{audio}')) {
@ -140,11 +131,19 @@ function audioInject(definition, fields, mode) {
}
if (!usesAudio) {
return Promise.resolve(true);
return true;
}
return audioBuildUrl(definition, mode).then(url => {
definition.audio = {url, filename};
try {
const url = await audioBuildUrl(definition, mode);
const filename = audioBuildFilename(definition);
if (url && filename) {
definition.audio = {url, filename};
}
return true;
}).catch(() => false);
} catch (e) {
return false;
}
}