您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
хелпер который помогает определить популярность карты на сайте astars.club
当前为
// ==UserScript== // @name astars.club Auto Helper // @namespace astars.club // @version 1.0 // @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); } } // Функция для получения данных и добавления иконок // Функция для проверки наличия дива и добавления кнопки 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 needResponse = await fetch(`https://astars.club/cards/${cardId}/users/need/`); let needCount = 0; if (needResponse.ok) { const needHtml = await needResponse.text(); const needDoc = new DOMParser().parseFromString(needHtml, 'text/html'); needCount = needDoc.querySelectorAll('.profile__friends-item').length; // Проверяем наличие пагинации и умножаем количество ссылок const pagination = needDoc.querySelector('.pagination__pages'); if (pagination) { const pageLinks = pagination.querySelectorAll('a').length; needCount = needCount + pageLinks * 36; } } // Получение количества "Готовы поменять" const tradeResponse = await fetch(`https://astars.club/cards/${cardId}/users/trade/`); let tradeCount = 0; if (tradeResponse.ok) { const tradeHtml = await tradeResponse.text(); const tradeDoc = new DOMParser().parseFromString(tradeHtml, 'text/html'); tradeCount = tradeDoc.querySelectorAll('.profile__friends-item').length; // Проверяем наличие пагинации и умножаем количество ссылок const pagination = tradeDoc.querySelector('.pagination__pages'); if (pagination) { const pageLinks = pagination.querySelectorAll('a').length; tradeCount = tradeCount + pageLinks * 36; } } // Удаляем предыдущую иконку, если она есть 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.innerHTML = `Популярность: ${needCount}<br>Готовы поменять: ${tradeCount}`; card.style.position = 'relative'; // Для позиционирования иконки card.appendChild(icon); } catch (error) { console.error(`Ошибка обработки карточки ${cardId}:`, error); } } } (function() { 'use strict'; // Проверяем наличие дива каждые 5 секунд setInterval(checkAndAddButton, 5000); })();