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.
document.addEventListener("DOMContentLoaded", function() {
    // Find the 'page views' span using its content or a parent container
    var pageViewElement = document.querySelector('span:contains("page views in the last 30 days")');

    if (pageViewElement) {
        // Add a class to style it
        pageViewElement.classList.add('pageviews');
        pageViewElement.classList.add('infoDiv');
    }
});

if (mw.config.get('wgNamespaceNumber') === 0 || mw.config.get('wgNamespaceNumber') === 14 || mw.config.get("wgNamespaceNumber") == 4 || mw.config.get("wgNamespaceNumber") == 2 || mw.config.get("wgNamespaceNumber") == 10 || mw.config.get("wgNamespaceNumber") == 12 || mw.config.get("wgNamespaceNumber") == 100 ) {
    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');
        
        const creationDateElement = doc.querySelector('#mw-pageinfo-firsttime td:nth-child(2) a');
        const pageViewsElement = doc.querySelector('#mw-pvi-month-count td:nth-child(2) a');
        const totalEditsElement = doc.querySelector('#mw-pageinfo-edits td:nth-child(2)');

        // 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.35cm'; 
        infoDiv.style.right = '5%';

        infoDiv.style.fontSize = 'small';
        infoDiv.style.color = 'red';
        // infoDiv.style.backgroundColor = rgb(189, 132, 144);
        // infoDiv.style.color = '#FF0000';
        // infoDiv.style.color = '#663399'; // purple

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

        if (totalEditsElement)  {

            // let total_edits_string = totalEditsElement.textContent.trim();
            const total_edits_div  =  document.createElement("div")

            total_edits_div.textContent = "Total edits:" + "\t"+"\t"  +totalEditsElement.textContent.trim()
            infoDiv.appendChild(total_edits_div)
        }
        // 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);
    });
}