Common.js: Difference between revisions
From Blood on the Clocktower Wiki
No edit summary |
No edit summary |
||
Line 13: | Line 13: | ||
{ | { | ||
content[0].querySelectorAll('.html5audio:not(.loaded)').forEach(function (div) { | content[0].querySelectorAll('.html5audio:not(.loaded)').forEach(function (div) { | ||
var data = div.dataset; | |||
var file = data.file; | |||
if (!file) { | |||
return; | |||
} | |||
var format = file.split('.').pop(); | |||
var preload = data.preload; | |||
var download = data.download; | |||
var options = data.options; | |||
var opts = { controls: '' }; | |||
var volume = Number(Number(data.volume).toFixed(1)); | |||
if (format === 'mp3') { | |||
format = 'mpeg'; | |||
} | |||
if (preload !== 'auto' || preload !== 'metadata') { | |||
preload = 'none'; | |||
} | |||
opts.preload = preload; | |||
if (download === 'false') { | |||
opts.controlsList = 'nodownload'; | |||
} | |||
if (options) { | |||
var valid = ['autoplay', 'loop', 'muted']; | |||
options.split(',').forEach(function (el) { | |||
el = el.trim(); | |||
if (valid.indexOf(el) !== -1) { | |||
opts[el] = ''; | |||
} | |||
}); | |||
} | } | ||
var audio = document.createElement('audio'); | var audio = document.createElement('audio'); |
Revision as of 16:55, 21 March 2023
$("li:contains('Toolbox')").hide(); $("img").contextmenu(function() { return false; }); $(document).ready(function() { handleAudioElements(); } function handleAudioElements() { content[0].querySelectorAll('.html5audio:not(.loaded)').forEach(function (div) { var data = div.dataset; var file = data.file; if (!file) { return; } var format = file.split('.').pop(); var preload = data.preload; var download = data.download; var options = data.options; var opts = { controls: '' }; var volume = Number(Number(data.volume).toFixed(1)); if (format === 'mp3') { format = 'mpeg'; } if (preload !== 'auto' || preload !== 'metadata') { preload = 'none'; } opts.preload = preload; if (download === 'false') { opts.controlsList = 'nodownload'; } if (options) { var valid = ['autoplay', 'loop', 'muted']; options.split(',').forEach(function (el) { el = el.trim(); if (valid.indexOf(el) !== -1) { opts[el] = ''; } }); } var audio = document.createElement('audio'); Object.keys(opts).forEach(function (attr) { var value = opts[attr]; audio.setAttribute(attr, value); }); var source = document.createElement('source'); source.src = file; source.type = 'audio/' + format; audio.append( source, msg('text').escape() ); if (volume >= 0 && volume <= 1) { audio.volume = volume; } div.innerHTML = ''; div.appendChild(audio); div.classList.add('loaded'); } /* $(document).ready(function() { var e_interactions = document.querySelector("#interactions"); var language = e_interactions.dataset.language; var href = window.location.href var slash = href.indexOf("/", 8) var hashtag = href.indexOf("#") var key = href.substring(slash + 1, hashtag == -1 ? href.length : hashtag) .replace(" ", "") .replace("-", "") .replace("'", "") .replace("_", "") .replace("%27", "") .toLowerCase(); fetch("https://interactions.patters.live/api/interactions/by-key/" + key + "/" + language) .then(function(response) { if (!response) { return; } response.json() .then(function(interactions) { interactions.sort(function(a, b) { var aKey = (a.primaryKey !== key ? a.primaryKey : a.secondaryKey) var bKey = (b.primaryKey !== key ? b.primaryKey : b.secondaryKey) if (aKey < bKey) return -1; if (aKey > bKey) return 1; return 0; }) var content = "" var table = document.createElement("table") var tr = document.createElement("tr") var thRole = document.createElement("th") thRole.style.fontWeight = "bold" var thDescription = document.createElement("th") thDescription.style.fontWeight = "bold" thRole.innerText = "Character" thDescription.innerText = "Description" tr.append(thRole) tr.append(thDescription) table.append(tr); for (var i = 0; i < interactions.length; i++) { var interaction = interactions[i] var tr = document.createElement("tr") var tdRole = document.createElement("td") var tdValue = document.createElement("td") if (interaction.primaryKey !== key) { tdRole.innerText = interaction.primary tdValue.innerText = interaction.value } else { tdRole.innerText = interaction.secondary tdValue.innerText = interaction.value } tr.append(tdRole) tr.append(tdValue) table.append(tr) } e_interactions.append(table) }); }); }); */