Actions

MediaWiki

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 data = div.dataset;
      var file = data.file;
          var file = data.file;
      if (!file) {
          if (!file) {
        return;
            return;
      }
          }
      var format = file.split('.').pop();
          var format = file.split('.').pop();
      var preload = data.preload;
          var preload = data.preload;
      var download = data.download;
          var download = data.download;
      var options = data.options;
          var options = data.options;
      var opts = { controls: '' };
          var opts = { controls: '' };
      var volume = Number(Number(data.volume).toFixed(1));
          var volume = Number(Number(data.volume).toFixed(1));
    
    
      if (format === 'mp3') {
          if (format === 'mp3') {
        format = 'mpeg';
            format = 'mpeg';
      }
          }
    
    
      if (preload !== 'auto' || preload !== 'metadata') {
          if (preload !== 'auto' || preload !== 'metadata') {
        preload = 'none';
            preload = 'none';
      }
          }
      opts.preload = preload;
          opts.preload = preload;
    
    
      if (download === 'false') {
          if (download === 'false') {
        opts.controlsList = 'nodownload';
            opts.controlsList = 'nodownload';
      }
          }
    
    
      if (options) {
          if (options) {
        var valid = ['autoplay', 'loop', 'muted'];
            var valid = ['autoplay', 'loop', 'muted'];
        options.split(',').forEach(function (el) {
            options.split(',').forEach(function (el) {
          el = el.trim();
              el = el.trim();
          if (valid.indexOf(el) !== -1) {
              if (valid.indexOf(el) !== -1) {
            opts[el] = '';
                  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)
                });
        
        });
});
*/