summaryrefslogtreecommitdiff
path: root/ext/mixed/js/util.js
diff options
context:
space:
mode:
Diffstat (limited to 'ext/mixed/js/util.js')
-rw-r--r--ext/mixed/js/util.js31
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);
+}