Bruger:SimmeD/TrackScript


Følgende scripts skal indsættes i din Speciel:MyPage/common.js.

importScript('Bruger:SimmeD/Scripts/autoSporScript.js'); // [[Bruger:SimmeD/Scripts/autoSporScript.js]]

Du kan se hvordan det virker på denne lille YouTube video: https://www.youtube.com/watch?v=2ot6qz0tFqw

Jeg arbjder på et Javascript der skal kunne ved et enkelt tryk kunne opsæt sådan list:

#"Now, Diabolical" – 5:30
#"K.I.N.G." – 3:36
#"The Pentagram Burns" – 5:38
#"A New Enemy" – 5:47
#"The Rite Of Our Cross" – 5:45
#"That Darkness Shall Be Eternal" – 4:46
#"Delirium" – 5:38
#"To The Mountains" – 8:09

til:

{{Sporliste       
| sammenklappet = 
| overskrift    = 
| ekstra_kolonne   = 
| total_længde     = 
| titel1 = Now, Diabolical 
| længde1 =  5:30 
| titel2 = K.I.N.G. 
| længde2 =  3:36 
| titel3 = The Pentagram Burns 
| længde3 =  5:38 
| titel4 = A New Enemy 
| længde4 =  5:47 
| titel5 = The Rite Of Our Cross 
| længde5 =  5:45 
| titel6 = That Darkness Shall Be Eternal 
| længde6 =  4:46 
| titel7 = Delirium 
| længde7 =  5:38 
| titel8 = To The Mountains 
| længde8 =  8:09
}}

Lige på nuværende tidspunkt så er jeg kommet så langt:

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 + ':' + tmp_min;
    }
    
    

    
    // 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());
document.getElementById('t-autolist').onclick = auto_track_script;

Dette er bare en simpelt version af hvad den skal kunne gøre, og lige nu virker scriptet fint nok (sådan da), men jeg bliver ved med udvikle på det :)