Bruger:SimmeD/Scripts/autoSporScript.js

// Skrevet af Simeon Dahl
// Sidst opdateret: 30. november 2017

function pad (str, max) {
  str = str.toString();
  return str.length < max ? pad("0" + str, max) : str;
}

var auto_track_script = function()
{
  // Sprøger for en playliste
  var textInput = prompt('Enter playlist:', '');

  // Tjekker om input er null
  if (textInput != '') {
    var SongsTemplate = [];
    var textArrayHashtag = textInput.split('#');
    var times = [];
    
    for (i = 1; i < textArrayHashtag.length; i++)
    {

      // Fjerner " fra array
      var nameAndTime = textArrayHashtag[i].replace(/"/g, '');
      var splitSymbol = null;

      
      if ( nameAndTime.includes('-') ) { splitSymbol = '-'; }
      if ( nameAndTime.includes('–') ) { splitSymbol = '–'; }
      
      var stringSplit = textArrayHashtag[i].replace(/"/g, '').split(splitSymbol);
      if (stringSplit[1] == null) { stringSplit[1] = ''; }

      SongsTemplate.push( '\n| titel' + (i) + ' = ' + stringSplit[0] + ' \n| længde' + (i) + ' =  ' + stringSplit[1] + ' ' );
      times.push( stringSplit[1] );
    }  
    
    // Udregner totaltid for hele albummet
    var totalTime = 0;
    var tmp_hour = 0;
    var tmp_min = 0;
    
    for (i = 0;i < times.length; i++)
    {
      var tmp_split = times[i].split(':');
      
      tmp_min =  parseInt(tmp_min) + parseInt(tmp_split[1]);
      tmp_hour = parseInt(tmp_hour) + parseInt(tmp_split[0]);
      
      if (tmp_min > 60)
      {
        tmp_hour = parseInt(tmp_hour) + 1;
        tmp_min = parseInt(tmp_min) - 60;
      }
      
      
    }
    
    // Ser om der overhovet er nogen tider at udregne/udskrive
    if ( isNaN(tmp_hour) || isNaN(tmp_min) )
    {
      totalTime = "";
    }
    else
    {
      totalTime = tmp_hour + ':' + pad(tmp_min, 2);
    }
    
    

    
    // Laver skabelonen for Sporliste
    var TemplateStart = ''
    + '{{Sporliste       '
    + '\n| sammenklappet = '
    + '\n| overskrift = ' //+ wgPageName
    + '\n| ekstra_kolonne = '
    + '\n| total_længde = ' + totalTime;
    var TemplateEnd = '\n}}';

    var endResult = TemplateStart + SongsTemplate.join('') + TemplateEnd;
    
    alert(endResult);    
    document.editform.wpSummary.value = document.editform.wpSummary.value + " +sporliste";
  }
}


// Add the tool on the "værktøjer" list
function linkAutoTrackList() {
 if (document.getElementById("t-autolist")) return;
 var li_current = document.getElementById("t-whatlinkshere");
 if (!li_current) return;
 var li_next = li_current.nextSibling;
 var ul_node = li_current.parentNode;
 var li = document.createElement("li");
 li.setAttribute("id", "t-autolist");
 li.setAttribute("title", "Lav sporlister om til {{spor}} automatisk");
 li.appendChild(document.createElement("a"));
 li.firstChild.appendChild(document.createTextNode("Auto Spor Liste"));
 ul_node.insertBefore(li, li_next);
}

$(linkAutoTrackList());
var autolist = document.getElementById('t-autolist');
if(autolist) autolist.onclick = auto_track_script;