MediaWiki:Common.js
From Blood on the Clocktower Wiki
Note: After publishing, you may have to bypass your browser's cache to see the changes.
- Firefox / Safari: Hold Shift while clicking Reload, or press either Ctrl-F5 or Ctrl-R (⌘-R on a Mac)
- Google Chrome: Press Ctrl-Shift-R (⌘-Shift-R on a Mac)
- Internet Explorer / Edge: Hold Ctrl while clicking Refresh, or press Ctrl-F5
- Opera: Press Ctrl-F5.
$("li:contains('Toolbox')").hide(); $("img").contextmenu(function () { return false; }); $(document).ready(function () { handleAudioElements(); replaceRolesWithAbilities(); }); async function replaceRolesWithAbilities() { let ok = true; let resp = await fetch("https://wiki.bloodontheclocktower.com/roles.json"); let roles = [] if (!resp.ok) { ok = false; } else { roles = await resp.json() console.log(roles); } document.querySelectorAll("[data-role]").forEach(function(e) { }); } function handleAudioElements() { document.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 (format === 'm4a') { format = 'mp4'; } 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); if (volume >= 0 && volume <= 1) { audio.volume = volume; } div.innerHTML = ''; div.appendChild(audio); div.classList.add('loaded'); }) }