User:Euphoria/common.js: Difference between revisions

From Test Wiki
Jump to navigation Jump to search
Content deleted Content added
No edit summary
No edit summary
Line 3: Line 3:
var pageTitle = mw.config.get('wgPageName'); // Get the current page title
var pageTitle = mw.config.get('wgPageName'); // Get the current page title
var apiURL = mw.config.get('wgServer') + mw.config.get('wgScriptPath') + '/api.php';
var apiURL = mw.config.get('wgServer') + mw.config.get('wgScriptPath') + '/api.php';
var wikiURL = mw.config.get('wgServer') + mw.config.get('wgScriptPath');


// Function to fetch page creator
// Function to fetch page creator
Line 54: Line 55:
// Function to display the creator with edit count
// Function to display the creator with edit count
function displayCreator(creator, editCount) {
function displayCreator(creator, editCount) {
var userPageURL = wikiURL + '/wiki/User:' + encodeURIComponent(creator);
var userContribsURL = wikiURL + '/wiki/Special:Contributions/' + encodeURIComponent(creator);

var creatorLink = $('<a>')
.attr('href', userPageURL)
.text(creator)
.css({'color': '#0645ad'});

var contribsLink = $('<a>')
.attr('href', userContribsURL)
.text(editCount + ' edits')
.css({'color': '#0645ad'});

var creatorInfo = $('<div>')
var creatorInfo = $('<div>')
.text('Page created by: ' + creator + ' (' + editCount + ' edits)')
.append('Page created by: ')
.append(creatorLink)
.append(' (')
.append(contribsLink)
.append(')')
.css({
.css({
'font-size': 'small',
'font-size': 'small',
Line 62: Line 80:
});
});


// Append the creator info below the title bar
$('#bodyContent').prepend(creatorInfo); // Try '#mw-content-text' if '#bodyContent' doesn't work
$('#bodyContent').prepend(creatorInfo); // Try '#mw-content-text' if '#bodyContent' doesn't work
}
}

Revision as of 09:43, 26 December 2023

// This script assumes you are on a Wikimedia page and have jQuery available
$(document).ready(function() {
    var pageTitle = mw.config.get('wgPageName'); // Get the current page title
    var apiURL = mw.config.get('wgServer') + mw.config.get('wgScriptPath') + '/api.php';
    var wikiURL = mw.config.get('wgServer') + mw.config.get('wgScriptPath');

    // Function to fetch page creator
    function fetchPageCreator() {
        $.ajax({
            url: apiURL,
            data: {
                action: 'query',
                format: 'json',
                titles: pageTitle,
                prop: 'revisions',
                rvlimit: 1,
                rvdir: 'newer',
                rvprop: 'user'
            },
            dataType: 'json',
            success: function(response) {
                if (response.query && response.query.pages) {
                    var pages = response.query.pages;
                    var pageId = Object.keys(pages)[0];
                    if (pages[pageId].revisions && pages[pageId].revisions[0]) {
                        var creator = pages[pageId].revisions[0].user;
                        fetchUserEditCount(creator);
                    }
                }
            }
        });
    }

    // Function to fetch user's edit count
    function fetchUserEditCount(username) {
        $.ajax({
            url: apiURL,
            data: {
                action: 'query',
                format: 'json',
                list: 'users',
                ususers: username,
                usprop: 'editcount'
            },
            dataType: 'json',
            success: function(response) {
                if (response.query && response.query.users && response.query.users[0]) {
                    var editCount = response.query.users[0].editcount;
                    displayCreator(username, editCount);
                }
            }
        });
    }

    // Function to display the creator with edit count
    function displayCreator(creator, editCount) {
        var userPageURL = wikiURL + '/wiki/User:' + encodeURIComponent(creator);
        var userContribsURL = wikiURL + '/wiki/Special:Contributions/' + encodeURIComponent(creator);

        var creatorLink = $('<a>')
            .attr('href', userPageURL)
            .text(creator)
            .css({'color': '#0645ad'});

        var contribsLink = $('<a>')
            .attr('href', userContribsURL)
            .text(editCount + ' edits')
            .css({'color': '#0645ad'});

        var creatorInfo = $('<div>')
            .append('Page created by: ')
            .append(creatorLink)
            .append(' (')
            .append(contribsLink)
            .append(')')
            .css({
                'font-size': 'small',
                'color': '#666',
                'margin-top': '5px'
            });

        $('#bodyContent').prepend(creatorInfo); // Try '#mw-content-text' if '#bodyContent' doesn't work
    }

    fetchPageCreator();
});