HeroesWM Player List Extractor

Извлечение списка игроков и их уровней для Google Sheets

За да инсталирате този скрипт, трябва да имате инсталирано разширение като Tampermonkey, Greasemonkey или Violentmonkey.

За да инсталирате този скрипт, трябва да имате инсталирано разширение като Tampermonkey или Violentmonkey.

За да инсталирате този скрипт, трябва да имате инсталирано разширение като Tampermonkey или Violentmonkey.

За да инсталирате този скрипт, трябва да имате инсталирано разширение като Tampermonkey или Userscripts.

За да инсталирате скрипта, трябва да инсталирате разширение като Tampermonkey.

За да инсталирате този скрипт, трябва да имате инсталиран скриптов мениджър.

(Вече имам скриптов мениджър, искам да го инсталирам!)

За да инсталирате този стил, трябва да инсталирате разширение като Stylus.

За да инсталирате този стил, трябва да инсталирате разширение като Stylus.

За да инсталирате този стил, трябва да инсталирате разширение като Stylus.

За да инсталирате този стил, трябва да имате инсталиран мениджър на потребителски стилове.

За да инсталирате този стил, трябва да имате инсталиран мениджър на потребителски стилове.

За да инсталирате този стил, трябва да имате инсталиран мениджър на потребителски стилове.

(Вече имам инсталиран мениджър на стиловете, искам да го инсталирам!)

// ==UserScript==
// @name         HeroesWM Player List Extractor
// @namespace    http://tampermonkey.net/
// @version      0.3
// @description  Извлечение списка игроков и их уровней для Google Sheets
// @author       Cursor Agent
// @match        *://*.heroeswm.ru/clan_info.php*
// @grant        none
// @license      MIT
// ==/UserScript==

(function() {
    'use strict';

    // Function to extract player names and levels
    function extractPlayerData() {
        const rows = document.querySelectorAll('tr');
        let result = [];
        
        rows.forEach(row => {
            const cells = row.querySelectorAll('td');
            if (cells.length >= 6) {
                const name = cells[2].querySelector('a')?.textContent.trim() || '';
                const level = cells[3].textContent.trim();
                
                if (name && level) {
                    result.push([name, level].join('\t'));
                }
            }
        });
        
        return result.join('\n');
    }

    // Function to copy data to clipboard
    function copyToClipboard() {
        const data = [
            'Name\tLevel',
            extractPlayerData()
        ].join('\n');

        navigator.clipboard.writeText(data)
            .then(() => {
                alert('Player data copied to clipboard! You can now paste it into Google Sheets.');
            })
            .catch(err => {
                console.error('Failed to copy data: ', err);
                alert('Failed to copy data. Please try again.');
            });
    }

    // Add button to the page
    function addButton() {
        const button = document.createElement('button');
        button.textContent = 'Copy Names & Levels';
        button.style.position = 'fixed';
        button.style.top = '10px';
        button.style.right = '10px';
        button.style.zIndex = '9999';
        button.style.padding = '10px';
        button.style.backgroundColor = '#4CAF50';
        button.style.color = 'white';
        button.style.border = 'none';
        button.style.borderRadius = '5px';
        button.style.cursor = 'pointer';
        
        button.addEventListener('click', copyToClipboard);
        document.body.appendChild(button);
    }

    // Wait for the page to load completely
    window.addEventListener('load', function() {
        setTimeout(addButton, 1000);
    });
})();