Jump to content

User:SSCreader/common.js

From Wikipedia, the free encyclopedia
Note: After saving, you have to bypass your browser's cache to see the changes. Google Chrome, Firefox, Microsoft Edge and Safari: Hold down the ⇧ Shift key and click the Reload toolbar button. For details and instructions about other browsers, see Wikipedia:Bypass your cache.
// Check if you're on a Wikipedia article page (namespace 0 represents the article namespace)
if (mw.config.get('wgNamespaceNumber') === 0) {  
    // Get the current page title
    var pageTitle = mw.config.get('wgPageName');

    // Fetch the page info from the action=info page
    fetch(`/w/index.php?title=${pageTitle}&action=info`)
    .then(response => response.text())
    .then(data => {
        // Parse the response HTML to extract page creation date and page views
        const parser = new DOMParser();
        const doc = parser.parseFromString(data, 'text/html');
        
        // Select the row with id 'mw-pageinfo-firsttime' to get the page creation date
        const creationDateElement = doc.querySelector('#mw-pageinfo-firsttime td:nth-child(2) a');

        // Select the row with id 'mw-pvi-month-count' to get the page views in the past 30 days
        const pageViewsElement = doc.querySelector('#mw-pvi-month-count td:nth-child(2) a');

        // Create a new div to display the creation date and page views
        const infoDiv = document.createElement('div');
        infoDiv.style.position = 'absolute';
        infoDiv.style.top = '2.5cm';  // Keep it 2.5cm down from the top
        infoDiv.style.right = '5%';  // Make it 10% away from the right, scalable with the window size
        infoDiv.style.fontSize = 'small';
        infoDiv.style.color = '#555';

        // Add creation date if the element exists
        if (creationDateElement) {
            const creationDate = creationDateElement.textContent.trim();
            infoDiv.textContent = `Page created: ${creationDate}`;
        }

        // Add page views if the element exists, place it under the creation date
        if (pageViewsElement) {
            const pageViews = pageViewsElement.textContent.trim();
            const pageViewsText = document.createElement('div');
            pageViewsText.textContent = `Page views (last 30 days): ${pageViews}`;
            infoDiv.appendChild(pageViewsText);
        }

        // Append the div to the body or content area of the article
        document.body.appendChild(infoDiv);
    })
    .catch(error => {
        console.error('Error fetching page info:', error);
    });
}