astars.club Auto Helper

хелпер который помогает определить популярность карты на сайте astars.club

当前为 2025-01-19 提交的版本,查看 最新版本

// ==UserScript==
// @name         astars.club Auto Helper
// @namespace    astars.club
// @version      0.72
// @description  хелпер который помогает определить популярность карты на сайте astars.club
// @author       astars lover
// @match        https://astars.club/cards/pack/
// @license MIT
// @grant        none
 
// ==/UserScript==

// Функция для проверки наличия дива и добавления кнопки
function checkAndAddButton() {
    const lootboxTitleDiv = document.querySelector('.lootbox__title');

    if (lootboxTitleDiv && !document.querySelector('#fetchLinksButton')) {
        const button = document.createElement('button');
        button.id = 'fetchLinksButton';
        button.innerText = 'Обновить количество ссылок';
        button.style.marginTop = '10px';
        button.addEventListener('click', fetchAndAddIcons);
        lootboxTitleDiv.appendChild(button);
    }
}

// Функция для получения данных и добавления иконок
async function fetchAndAddIcons() {
    const cards = document.querySelectorAll('.lootbox__card');

    for (const card of cards) {
        const cardId = card.getAttribute('data-id');
        if (!cardId) continue;

        try {
            const response = await fetch(`https://astars.club/cards/${cardId}/users/need/`);
            if (!response.ok) {
                console.error(`Ошибка запроса для карточки ${cardId}`);
                continue;
            }

            const html = await response.text();
            const parser = new DOMParser();
            const doc = parser.parseFromString(html, 'text/html');
            const links = doc.querySelectorAll('.profile__friends-item');

            // Удаляем предыдущую иконку, если она есть
            let existingIcon = card.querySelector('.link-icon');
            if (existingIcon) {
                existingIcon.remove();
            }

            // Добавляем иконку с количеством ссылок
            const icon = document.createElement('div');
            icon.className = 'link-icon';
            icon.style.position = 'absolute';
            icon.style.top = '5px';
            icon.style.right = '5px';
            icon.style.backgroundColor = 'rgba(0, 0, 0, 0.7)';
            icon.style.color = 'white';
            icon.style.padding = '5px';
            icon.style.borderRadius = '5px';
            icon.style.fontSize = '12px';
            icon.innerText = `Ссылки: ${links.length}`;

            card.style.position = 'relative'; // Для позиционирования иконки
            card.appendChild(icon);
        } catch (error) {
            console.error(`Ошибка обработки карточки ${cardId}:`, error);
        }
    }
}

// Проверяем наличие дива каждые 5 секунд
setInterval(checkAndAddButton, 5000);