MediaWiki:Common.js: Difference between revisions
Jump to navigation
Jump to search
Content added Content deleted
No edit summary |
No edit summary |
||
Line 8: | Line 8: | ||
var artistStr = ''; |
var artistStr = ''; |
||
if (artists. |
if (artists.constructor === Array) { |
||
⚫ | |||
artistStr += linkStart+artists[0]+linkEnd; |
artistStr += linkStart+artists[0]+linkEnd; |
||
⚫ | |||
} else if (artists.length == 2) { |
|||
⚫ | |||
} else { |
|||
var last_artist = artists.pop(); |
|||
artistStr += linkStart+artists.join(linkEnd+', '+linkStart)+linkEnd+' & '+linkStart+last_artist+linkEnd; |
|||
} |
|||
} else { |
} else { |
||
artistStr += linkStart+artists+linkEnd; |
|||
⚫ | |||
} |
} |
||
if ( |
if (artists.constructor === Array) { |
||
if (featured.length > 0) { |
|||
artistStr += ' feat. '+createArtistString(link, featured); |
artistStr += ' feat. '+createArtistString(link, featured); |
||
} |
|||
} else { |
|||
artistStr += ' feat. '+linkStart+featured+linkEnd; |
|||
} |
} |
||
Line 35: | Line 43: | ||
} |
} |
||
var wikiString = m[0]; |
|||
var edition = m[1]; |
var edition = m[1]; |
||
var |
var editionInt = parseInt(edition); |
||
var show = m[2].toLowerCase(); |
|||
$.getJSON('https://fantasiacontest.miraheze.org/wiki/EditionData:'+edition+'?action=raw', function(data) { |
$.getJSON('https://fantasiacontest.miraheze.org/wiki/EditionData:'+edition+'?action=raw', function(data) { |
||
var resultsTable = '{| class="wikitable sortable" width="100%"'+"\n"; |
|||
var editionData = JSON.parse(data); |
|||
resultsTable += '! width="8%"|Draw ! width="25%"|Country ! width="25%"|Artist ! width="25%"|Song ! width="8%"|Place ! width="8%"|Points'+"\n"; |
|||
⚫ | |||
var draw = 1; |
|||
var countryInfo = data.countries; |
|||
var showResults = data.results[show]; |
|||
showResults.forEach(function (resultData) { |
|||
var country = resultData.country; |
|||
var place = resultData.place; |
|||
var points = resultData.points; |
|||
countryInfo = countryInfo[country]; |
|||
var artist = countryInfo.artist; |
|||
var featured = (countryInfo.featured === undefined) ? [] : countryInfo.featured; |
|||
var song = countryInfo.song; |
|||
var qualified = false; |
|||
if ((show === 'sf1' || show === 'sf2' || show === 'sf3') && (editionInt === 1 && place <= 12) || (editionInt === 2 && place <= 10) || (editionInt >= 3 && place <= 7) || (editionInt === 11 && place === 8)) { |
|||
resultsTable += '|-'+"\n"; |
|||
} else { |
|||
resultsTable += '|- style="background:navajowhite;font-weight:bold;"'+"\n"; |
|||
} |
|||
resultsTable += '|align="center"| '+String(draw).padStart(2, '0')+"\n"; |
|||
resultsTable += '| {{fc|'+country+'}}'+"\n"; |
|||
resultsTable += '| '+createArtistString(true, artist, featured)+"\n"; |
|||
resultsTable += '| "'+song+'"'+"\n"; |
|||
resultsTable += '|align="center"| '+String(place)+"\n"; |
|||
resultsTable += '|align="center"| '+String(points)+"\n"; |
|||
⚫ | |||
resultsTable += '|}'; |
|||
}); |
|||
} |
} |
Revision as of 16:04, 30 December 2019
/* Any JavaScript here will be loaded for all users on every page load. */
function createArtistString(link, artists, featured) {
featured = (featured === undefined) ? [] : featured;
var linkStart = (link === true) ? '[[' : '';
var linkEnd = (link === true) ? ']]' : '';
var artistStr = '';
if (artists.constructor === Array) {
if (artists.length == 1) {
artistStr += linkStart+artists[0]+linkEnd;
} else if (artists.length == 2) {
artistStr += linkStart+artists.join(linkEnd+' & '+linkStart)+linkEnd;
} else {
var last_artist = artists.pop();
artistStr += linkStart+artists.join(linkEnd+', '+linkStart)+linkEnd+' & '+linkStart+last_artist+linkEnd;
}
} else {
artistStr += linkStart+artists+linkEnd;
}
if (artists.constructor === Array) {
if (featured.length > 0) {
artistStr += ' feat. '+createArtistString(link, featured);
}
} else {
artistStr += ' feat. '+linkStart+featured+linkEnd;
}
return artistStr;
}
var pageHTML = $('.mw-parser-output').html();
/** CONTEST RESULTS **/
var resultsRegex = /{{#ContestResults:([1-9](?:[0-9]{1,})?)\|(SF[1-3]|GF)}}/gm;
let m;
while ((m = resultsRegex.exec(pageHTML)) !== null) {
if (m.index === resultsRegex.lastIndex) {
resultsRegex.lastIndex++;
}
var wikiString = m[0];
var edition = m[1];
var editionInt = parseInt(edition);
var show = m[2].toLowerCase();
$.getJSON('https://fantasiacontest.miraheze.org/wiki/EditionData:'+edition+'?action=raw', function(data) {
var resultsTable = '{| class="wikitable sortable" width="100%"'+"\n";
resultsTable += '! width="8%"|Draw ! width="25%"|Country ! width="25%"|Artist ! width="25%"|Song ! width="8%"|Place ! width="8%"|Points'+"\n";
var draw = 1;
var countryInfo = data.countries;
var showResults = data.results[show];
showResults.forEach(function (resultData) {
var country = resultData.country;
var place = resultData.place;
var points = resultData.points;
countryInfo = countryInfo[country];
var artist = countryInfo.artist;
var featured = (countryInfo.featured === undefined) ? [] : countryInfo.featured;
var song = countryInfo.song;
var qualified = false;
if ((show === 'sf1' || show === 'sf2' || show === 'sf3') && (editionInt === 1 && place <= 12) || (editionInt === 2 && place <= 10) || (editionInt >= 3 && place <= 7) || (editionInt === 11 && place === 8)) {
resultsTable += '|-'+"\n";
} else {
resultsTable += '|- style="background:navajowhite;font-weight:bold;"'+"\n";
}
resultsTable += '|align="center"| '+String(draw).padStart(2, '0')+"\n";
resultsTable += '| {{fc|'+country+'}}'+"\n";
resultsTable += '| '+createArtistString(true, artist, featured)+"\n";
resultsTable += '| "'+song+'"'+"\n";
resultsTable += '|align="center"| '+String(place)+"\n";
resultsTable += '|align="center"| '+String(points)+"\n";
});
resultsTable += '|}';
});
}