RosettaCode Conribution Records Counter

count specific li elements within section.mw-pager-body

Устаревшая версия за 12.02.2024. Перейдите к последней версии.

Чтобы установить этот скрипт, вы сначала должны установить расширение браузера, например Tampermonkey, Greasemonkey или Violentmonkey.

Для установки этого скрипта вам необходимо установить расширение, такое как Tampermonkey.

Чтобы установить этот скрипт, вы сначала должны установить расширение браузера, например Tampermonkey или Violentmonkey.

Чтобы установить этот скрипт, вы сначала должны установить расширение браузера, например Tampermonkey или Userscripts.

Чтобы установить этот скрипт, сначала вы должны установить расширение браузера, например Tampermonkey.

Чтобы установить этот скрипт, вы должны установить расширение — менеджер скриптов.

(у меня уже есть менеджер скриптов, дайте мне установить скрипт!)

Чтобы установить этот стиль, сначала вы должны установить расширение браузера, например Stylus.

Чтобы установить этот стиль, сначала вы должны установить расширение браузера, например Stylus.

Чтобы установить этот стиль, сначала вы должны установить расширение браузера, например Stylus.

Чтобы установить этот стиль, сначала вы должны установить расширение — менеджер стилей.

Чтобы установить этот стиль, сначала вы должны установить расширение — менеджер стилей.

Чтобы установить этот стиль, сначала вы должны установить расширение — менеджер стилей.

(у меня уже есть менеджер стилей, дайте мне установить скрипт!)

// ==UserScript==
// @name         RosettaCode Conribution Records Counter
// @namespace    http://tampermonkey.net/
// @version      1.0.1
// @description  count specific li elements within section.mw-pager-body
// @author       aspen138
// @match        *://rosettacode.org/wiki/Special:Contributions?end=&limit=5000&namespace=all&start=&tagfilter=&target=*
// @match        *://rosettacode.org/wiki/Special:Contributions*
// @grant        none
// @license    MIT
// ==/UserScript==

(function() {
    'use strict';

     function countAndDisplayLiElements() {
        // Find the target section
        var section = document.querySelector('section.mw-pager-body');
        if (!section) return;

        // Count li elements that match the first criteria
        var liElementsFirstCriteria = section.querySelectorAll('li.mw-contributions-current.mw-tag-wikieditor');
        var countFirstCriteria = liElementsFirstCriteria.length;

        // Count li elements that match the second criteria
        var liElementsSecondCriteria = section.querySelectorAll('li.mw-tag-wikieditor');
        var countSecondCriteria = liElementsSecondCriteria.length;

        // Create a new element to display the count for the first criteria
        var resultDisplayFirstCriteria = document.createElement('div');
        resultDisplayFirstCriteria.textContent = `Count of li elements with "mw-contributions-current.mw-tag-wikieditor": ${countFirstCriteria}`;
        resultDisplayFirstCriteria.style.backgroundColor = 'yellow'; // Set the background color to blue
        resultDisplayFirstCriteria.style.color = 'blue'; // Optional: Set text color to white for better readability
        resultDisplayFirstCriteria.style.padding = '10px'; // Optional: Add some padding
        resultDisplayFirstCriteria.style.marginBottom = '10px'; // Optional: Add some margin at the bottom
        resultDisplayFirstCriteria.style.border = "2px solid black";

        // Create a new element to display the count for the second criteria
        var resultDisplaySecondCriteria = document.createElement('div');
        resultDisplaySecondCriteria.textContent = `(RosettaCode Conribution Records Counter) Count of li elements with "mw-tag-wikieditor": ${countSecondCriteria}`;
        resultDisplaySecondCriteria.style.backgroundColor = 'yellow'; // Set the background color to blue
        resultDisplaySecondCriteria.style.color = 'blue'; // Optional: Set text color to white for better readability
        resultDisplaySecondCriteria.style.padding = '10px'; // Optional: Add some padding
        resultDisplaySecondCriteria.style.marginBottom = '10px'; // Optional: Add some margin at the bottom
        resultDisplaySecondCriteria.style.border = "2px solid black";

        // Insert the results as the first children of the section
        if (section.firstChild) {
            section.insertBefore(resultDisplaySecondCriteria, section.firstChild);
            section.insertBefore(resultDisplayFirstCriteria, resultDisplaySecondCriteria);
        } else {
            section.appendChild(resultDisplayFirstCriteria);
            section.appendChild(resultDisplaySecondCriteria);
        }
    }

    // Assuming this function is called when the document is fully loaded
    window.addEventListener('load', countAndDisplayLiElements);
})();