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>' | |||
); | |||
} | |||
}); | |||
}); | |||
}); | }); | ||