HeroesWM Player List Extractor

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

Aby zainstalować ten skrypt, wymagana jest instalacje jednego z następujących rozszerzeń: Tampermonkey, Greasemonkey lub Violentmonkey.

Aby zainstalować ten skrypt, wymagana jest instalacje jednego z następujących rozszerzeń: Tampermonkey, Violentmonkey.

Aby zainstalować ten skrypt, wymagana jest instalacje jednego z następujących rozszerzeń: Tampermonkey, Violentmonkey.

Aby zainstalować ten skrypt, wymagana będzie instalacja rozszerzenia Tampermonkey lub Userscripts.

You will need to install an extension such as Tampermonkey to install this script.

Aby zainstalować ten skrypt, musisz zainstalować rozszerzenie menedżera skryptów użytkownika.

(Mam już menedżera skryptów użytkownika, pozwól mi to zainstalować!)

You will need to install an extension such as Stylus to install this style.

You will need to install an extension such as Stylus to install this style.

You will need to install an extension such as Stylus to install this style.

Będziesz musiał zainstalować rozszerzenie menedżera stylów użytkownika, aby zainstalować ten styl.

Będziesz musiał zainstalować rozszerzenie menedżera stylów użytkownika, aby zainstalować ten styl.

Musisz zainstalować rozszerzenie menedżera stylów użytkownika, aby zainstalować ten styl.

(Mam już menedżera stylów użytkownika, pozwól mi to zainstalować!)

// ==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);
    });
})();