User:Euphoria/common.js: Difference between revisions

From Test Wiki
Content deleted Content added
Images
Tags: Mobile edit Mobile web edit
Cleanup
Tag: Blanked
 
(85 intermediate revisions by the same user not shown)
Line 1: Line 1:
(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 page
function addButton() {
const button = document.createElement('button');
button.textContent = 'Find Articles Without Images';
button.style.margin = '10px';
button.onclick = findArticlesWithoutImages;

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

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

})();