User:Yethrosh/common.js

From Wikipedia

Note: After publishing, you may have to bypass your browser's cache to see the changes.

  • Firefox / Safari: Hold Shift while clicking Reload, or press either Ctrl-F5 or Ctrl-R (⌘-R on a Mac)
  • Google Chrome: Press Ctrl-Shift-R (⌘-Shift-R on a Mac)
  • Internet Explorer / Edge: Hold Ctrl while clicking Refresh, or press Ctrl-F5
  • Opera: Press Ctrl-F5.
// کاوشِ Yethrosh (2024ء)
/*
mw.loader.using(['mediawiki.util', 'jquery'], function () {
    
    $(function () {
        const textBox = document.getElementById('wpTextbox1');
        const summaryLabel = document.getElementById('wpSummaryLabel');

        if (!textBox) {
            return;
        }

        // تمام عناصر کی یکساں کلاس
        const counterClass = 'counters';

        // Function to create counter element
        const createCounter = function (id, label) {
            const counter = document.createElement('p');
            counter.classList.add(counterClass);
            counter.id = id;
            summaryLabel.insertBefore(counter, summaryLabel.lastChild);
            counter.innerHTML = `${label}: 0`;
            return counter;
        };
        
        // سطروں کی تعداد
        const lineCounter = createCounter('lineCounter', 'سطروں کی تعداد');

        const updateLineCounter = function () {
            const text = textBox.value;
            const lines = text.split('\n').filter(line => line.trim() !== '');
            lineCounter.innerHTML = `سطروں کی تعداد: ${lines.length}`;
        };

        updateLineCounter();
        textBox.addEventListener('keyup', updateLineCounter);

        // سرخ روابط کی تعداد
        const missingPagesCounter = createCounter('missingPagesCounter', 'سرخ روابط کی تعداد');

        const fetchMissingPages = function () {
    		return new Promise((resolve, reject) => {
    			const pageName = mw.util.getParamValue('title');
    			console.log(pageName);
        		const params = {
        			action: 'query',
            		generator: 'links',
            		titles: pageName,
            		gpllimit: 'max',
            		format: 'json'
        		};
        		const api = new mw.Api();
        		api.get(params).done(function (data) {
        			const pages = data.query.pages;
            		let missingPages = [];
            		for (const p in pages) {
            			if (pages[p].hasOwnProperty('missing')) {
            				missingPages.push(pages[p].title);
            			}
            		}
            		resolve(missingPages);
        		}).fail(function (error) {
        			reject(error);
        		});
    		});
        };

        const updateMissingPagesCounter = function () {
        	fetchMissingPages().then(missingPages => {
        		missingPagesCounter.innerHTML = `سرخ روابط کی تعداد: ${missingPages.length}`;
        	}).catch(error => {
        		console.error('Error fetching missing pages:', error);
        	});
        };

        textBox.addEventListener('keyup', updateMissingPagesCounter);
    });
});
*/
const pageName = mw.util.getParamValue('title');
var params = {
		action: 'query',
		generator: 'links',
		titles: pageName,
		gpllimit: 'max',
		format: 'json'
	},
	api = new mw.Api();

api.get( params ).done( function ( data ) {
	var pages = data.query.pages,
		p;
	for ( p in pages ) {
		if( pages[ p ].hasOwnProperty('missing') ){
			console.log( pages[ p ].title );
		}
	}
} );