User:Euphoria/common.js: Difference between revisions

From Test Wiki
Jump to navigation Jump to search
(Images)
Tags: Mobile edit Mobile web edit
(addButtonToSidebar)
Tags: Mobile edit Mobile web edit
Line 1: Line 1:
// ==UserScript==
// @name        Find Articles Without Images
// @namespace  WikipediaUserScripts
// @description Finds articles in a category that lack images and logs them to the console.
// @include    /^https:\/\/en\.wikipedia\.org\/wiki\/Category:.+/
// @version    1
// @grant      none
// ==/UserScript==
(function() {
(function() {
     'use strict';
     'use strict';
Line 27: Line 36:
     }
     }


     // Add a button to the page
     // Add a button to the sidebar
     function addButton() {
     function addButtonToSidebar() {
         const button = document.createElement('button');
         var sidebar = document.getElementById('mw-panel');
        button.textContent = 'Find Articles Without Images';
 
        button.style.margin = '10px';
        if (sidebar) {
        button.onclick = findArticlesWithoutImages;
            var button = document.createElement('button');
            button.textContent = 'Find Articles Without Images';
            button.style.margin = '5px';
            button.style.width = '90%';
            button.onclick = findArticlesWithoutImages;
 
            var container = document.createElement('div');
            container.style.textAlign = 'center';
            container.appendChild(button);


        const referenceNode = document.getElementById('mw-content-text');
            sidebar.appendChild(container);
         referenceNode.insertBefore(button, referenceNode.firstChild);
         }
     }
     }


     // Add the button when the script loads
     // Add the button when the script loads
     addButton();
     addButtonToSidebar();


})();
})();

Revision as of 06:28, 23 December 2023

// ==UserScript==
// @name        Find Articles Without Images
// @namespace   WikipediaUserScripts
// @description Finds articles in a category that lack images and logs them to the console.
// @include     /^https:\/\/en\.wikipedia\.org\/wiki\/Category:.+/
// @version     1
// @grant       none
// ==/UserScript==

(function() {
    'use strict';

    // Function to check if a page has images
    async function checkIfPageHasImage(pageTitle) {
        const endpoint = `https://en.wikipedia.org/w/api.php?action=query&titles=${encodeURIComponent(pageTitle)}&prop=images&format=json&origin=*`;
        const response = await fetch(endpoint);
        const data = await response.json();
        const page = data.query.pages[Object.keys(data.query.pages)[0]];
        return page.hasOwnProperty('images');
    }

    // Main function to find articles without images
    async function findArticlesWithoutImages() {
        const categoryTitle = document.getElementById('firstHeading').innerText;
        const endpoint = `https://en.wikipedia.org/w/api.php?action=query&list=categorymembers&cmtitle=${encodeURIComponent(categoryTitle)}&cmlimit=max&format=json&origin=*`;
        const response = await fetch(endpoint);
        const data = await response.json();
        const articles = data.query.categorymembers;

        for (const article of articles) {
            const hasImage = await checkIfPageHasImage(article.title);
            if (!hasImage) {
                console.log(`Article without image found: ${article.title}`);
            }
        }
    }

    // Add a button to the sidebar
    function addButtonToSidebar() {
        var sidebar = document.getElementById('mw-panel');

        if (sidebar) {
            var button = document.createElement('button');
            button.textContent = 'Find Articles Without Images';
            button.style.margin = '5px';
            button.style.width = '90%';
            button.onclick = findArticlesWithoutImages;

            var container = document.createElement('div');
            container.style.textAlign = 'center';
            container.appendChild(button);

            sidebar.appendChild(container);
        }
    }

    // Add the button when the script loads
    addButtonToSidebar();

})();