|
|
(3 intermediate revisions by the same user not shown) |
Line 14: |
Line 14: |
| }); | | }); |
| }); | | }); |
| $(function () {
| | // MediaWiki:Common.js |
| // Only run on the Main Page
| | mw.hook('rcfilters.ui.initialized').add(function () { |
| if (mw.config.get('wgPageName') !== 'Continuum_Universes_Wiki') return;
| | document.documentElement.classList.add('rcfilters-ready'); |
| | |
| 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>'
| |
| );
| |
| }
| |
| });
| |
| });
| |
| }); | | }); |