MediaWiki:Common.js: Difference between revisions
Appearance
![]() Cdjensen94 (talk | contribs) |
![]() Cdjensen94 (talk | contribs) |
||
Line 1: | Line 1: | ||
$(function() { | $(function() { | ||
fetch('/api.php?action=query&meta=siteinfo&siprop=statistics&format=json') | fetch('/api.php?action=query&meta=siteinfo&siprop=statistics&format=json') | ||
Line 28: | Line 13: | ||
} | } | ||
}); | }); | ||
}); | |||
$(function () { | |||
// Where to display | |||
var $spot = $('<div id="lore-spotlight"><h3>Random Lore Spotlight</h3><div class="content">Loading…</div></div>'); | |||
$('#mw-content-text').prepend($spot); | |||
// Query API for random page in Lore category | |||
$.getJSON(mw.util.wikiScript('api'), { | |||
action: 'query', | |||
list: 'random', | |||
rnnamespace: 0, | |||
rnlimit: 1, | |||
rncategory: 'Lore', | |||
format: 'json' | |||
}).done(function (data) { | |||
var page = data.query.random[0]; | |||
// Get full HTML of page | |||
$.get(mw.util.wikiScript('index'), { | |||
action: 'render', | |||
title: page.title | |||
}).done(function (html) { | |||
var $html = $('<div>').html(html); | |||
// Look for hidden spotlight text | |||
var hooks = $html.find('.lore-spotlight-text').map(function () { | |||
return $(this).text(); | |||
}).get(); | |||
if (hooks.length > 0) { | |||
// Pick one at random | |||
var hook = hooks[Math.floor(Math.random() * hooks.length)]; | |||
$spot.find('.content').html(hook); | |||
} else { | |||
// Fallback if no hook | |||
$spot.find('.content').html( | |||
'<b><a href="/wiki/' + encodeURIComponent(page.title) + '">' + page.title + '</a></b>' | |||
); | |||
} | |||
}); | |||
}); | |||
}); | }); |
Revision as of 00:09, 17 August 2025
$(function() {
fetch('/api.php?action=query&meta=siteinfo&siprop=statistics&format=json')
.then(res => res.json())
.then(data => {
const current = data.query.statistics.articles;
const goal = 500;
const left = goal - current;
const el = document.getElementById("article-countdown");
if (el) {
el.innerHTML = left > 0
? `🚧 Only <strong>${left}</strong> articles to go until 500!`
: `🎯 We've reached 500 articles! Celebrate good times, c'mon!`;
}
});
});
$(function () {
// Where to display
var $spot = $('<div id="lore-spotlight"><h3>Random Lore Spotlight</h3><div class="content">Loading…</div></div>');
$('#mw-content-text').prepend($spot);
// Query API for random page in Lore category
$.getJSON(mw.util.wikiScript('api'), {
action: 'query',
list: 'random',
rnnamespace: 0,
rnlimit: 1,
rncategory: 'Lore',
format: 'json'
}).done(function (data) {
var page = data.query.random[0];
// Get full HTML of page
$.get(mw.util.wikiScript('index'), {
action: 'render',
title: page.title
}).done(function (html) {
var $html = $('<div>').html(html);
// Look for hidden spotlight text
var hooks = $html.find('.lore-spotlight-text').map(function () {
return $(this).text();
}).get();
if (hooks.length > 0) {
// Pick one at random
var hook = hooks[Math.floor(Math.random() * hooks.length)];
$spot.find('.content').html(hook);
} else {
// Fallback if no hook
$spot.find('.content').html(
'<b><a href="/wiki/' + encodeURIComponent(page.title) + '">' + page.title + '</a></b>'
);
}
});
});
});