User:Saroj/PageCreatorInfo.js
Note: After publishing, you may have to bypass your browser's cache to see the changes.
- Firefox / Safari: Hold Shift while clicking Reload, or press either Ctrl-F5 or Ctrl-R (⌘-R on a Mac)
- Google Chrome: Press Ctrl-Shift-R (⌘-Shift-R on a Mac)
- Internet Explorer / Edge: Hold Ctrl while clicking Refresh, or press Ctrl-F5
- Opera: Press Ctrl-F5.
/** * PageCreatorInfo.js * Developer: Saroj * Date: 2023-12-26 * * This script fetches and displays the name of the creator of a MediaWiki page along with * their total number of edits on the site. It is designed for MediaWiki environments. */ $(document).ready(function() { // Only execute in view mode if (mw.config.get('wgAction') === "view") { var apiURL = mw.config.get('wgServer') + mw.config.get('wgScriptPath') + '/api.php'; var wikiURL = mw.config.get('wgServer') + mw.config.get('wgScriptPath'); // Fetches the creator of the current page function fetchPageCreator() { $.ajax({ url: apiURL, data: { action: 'query', format: 'json', titles: mw.config.get('wgPageName'), prop: 'revisions', rvlimit: 1, rvdir: 'newer', rvprop: 'user' }, dataType: 'json', success: function(response) { var pageId = Object.keys(response.query.pages)[0]; fetchUserEditCount(response.query.pages[pageId].revisions[0].user); } }); } // Fetches the edit count of the creator function fetchUserEditCount(username) { $.ajax({ url: apiURL, data: { action: 'query', format: 'json', list: 'users', ususers: username, usprop: 'editcount' }, dataType: 'json', success: function(response) { displayCreator(username, response.query.users[0].editcount); } }); } // Displays creator info below the title bar function displayCreator(creator, editCount) { var creatorInfo = $('<div>') .append('Page created by: ') .append($('<a>').attr('href', wikiURL + '/User:' + encodeURIComponent(creator)).text(creator).css({'color': '#0645ad'})) .append(' (') .append($('<a>').attr('href', wikiURL + '/Special:Contributions/' + encodeURIComponent(creator)).text(editCount + ' edits').css({'color': '#0645ad'})) .append(')') .css({'font-size': '84%', 'color': '#666', 'margin-top': '5px'}); $('#bodyContent').prepend(creatorInfo); } fetchPageCreator(); } });