Jump to content

User:JPxG/TrackSum.js

From Wikipedia, the free encyclopedia
This is an old revision of this page, as edited by JPxG (talk | contribs) at 22:51, 3 September 2021 (fix formatting). The present address (URL) is a permanent link to this revision, which may differ significantly from the current revision.
Note: After saving, you have to bypass your browser's cache to see the changes. Google Chrome, Firefox, Microsoft Edge and Safari: Hold down the ⇧ Shift key and click the Reload toolbar button. For details and instructions about other browsers, see Wikipedia:Bypass your cache.
// If you are editing a page, this script gives you a button to click and automatically sum up all the track lengths in [[Template:Tracklist]] to provide a total length.
// Skeleton of this code forked from Wikipedia:WikiProject User scripts/Scripts/Quick wikify
// - JPxG, 2021 September 3

function getIndices(strang, substrang) {
    var indices = [], i = -1;
    while ((i = strang.indexOf(substrang, i+1)) != -1){
        indices.push(i);
    } // Close loop to increment over the strang.
    return indices;
} // Function to get indices of a substring in a string.


function doTracksum() {
	tbox = document.editform.wpTextbox1.value;
	// Get the text from the edit box and store it as "tbox".
	var cursor = 0;
	// Set cursor to zero.
	var indax = getIndices(tbox, "{{tracklist");
	indax = indax.concat(getIndices(tbox, "{{Tracklist"));
	indax = indax.concat(getIndices(tbox, "{{Track listing"));
	indax = indax.concat(getIndices(tbox, "{{Track Listing"));
	indax = indax.concat(getIndices(tbox, "{{track listing"));
	indax = indax.concat(getIndices(tbox, "{{Tracklisting"));
	indax = indax.concat(getIndices(tbox, "{{tracklisting"));
	indax = indax.concat(getIndices(tbox, "{{Soundtrack"));
	indax = indax.concat(getIndices(tbox, "{{soundtrack"));
	indax = indax.sort();
	document.editform.wpTextbox1.value = "Found at" + indices.toString();
	// document.editform.wpTextbox1.value = '{' + '{' + 'Wikify|date=' + '{' + '{' + 'subst:CURRENTMONTHNAME}} ' + '{' + '{' + 'subst:CURRENTYEAR}}}}\n\n' + document.editform.wpTextbox1.value;
	document.editform.wpSummary.value = "Automatically summed track lengths [script-assisted: JPxG's [[User:JPxG/tracksum.js|TrackSum]] V0.1]";
	document.editform.wpMinoredit.checked = true;
	//document.editform.submit();
} // function to replace the stuff with the other stuff

addOnloadHook(function() {
	if (document.editform) {
		addPortletLink("p-cactions", "javascript:doTracksum()", "Tracksum", "ca-tracksum", "Sum up track lengths in tracklist template", "");
	}
}); // onloadhook

// by [[User:Raylu|raylu]]
// </nowiki></pre>