diff options
Diffstat (limited to 'ext/mixed/js/util.js')
-rw-r--r-- | ext/mixed/js/util.js | 31 |
1 files changed, 30 insertions, 1 deletions
diff --git a/ext/mixed/js/util.js b/ext/mixed/js/util.js index 13f124a0..1289455c 100644 --- a/ext/mixed/js/util.js +++ b/ext/mixed/js/util.js @@ -21,7 +21,7 @@ * Audio */ -function audioBuildUrl(definition, cache) { +function audioBuildUrl(definition, cache={}) { return new Promise((resolve, reject) => { const response = cache[definition.expression]; if (response) { @@ -78,3 +78,32 @@ function audioBuildFilename(definition) { return filename += '.mp3'; } } + +function audioInject(definition, fields) { + const filename = audioBuildFilename(definition); + if (!filename) { + return Promise.resolve(true); + } + + const audio = { + filename, + skipHash: '7e2c2f954ef6051373ba916f000168dc', + fields: [] + }; + + for (const name in fields) { + if (fields[name].includes('{audio}')) { + audio.fields.push(name); + } + } + + if (audio.fields.length === 0) { + return Promise.resolve(true); + } + + return audioBuildUrl(definition).then(url => { + audio.url = url; + note.audio = audio; + return true; + }).catch(() => false); +} |