您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
Для форума
// ==UserScript== // @name Авто-подгрузка статистики GreasyFork для тем с дополнениями // @namespace https://lolz.live/ // @version 1.0 // @description Для форума // @author umikud // @match https://lolz.live/threads/* // @grant GM.xmlHttpRequest // @connect greasyfork.org // ==/UserScript== (function () { 'use strict'; console.log('cкрипт запущен'); const match = document.body.innerText.match(/https?:\/\/greasyfork\.org\/(?:[a-z-]+\/)?scripts\/(\d+)/i); if (!match) { console.log('cсылка на Greasy Fork не найдена'); return; } const scriptId = match[1]; const apiUrl = `https://greasyfork.org/scripts/${scriptId}.json`; GM.xmlHttpRequest({ method: 'GET', url: apiUrl, headers: { 'Accept': 'application/json' }, onload: function (res) { if (res.status !== 200) { console.error('не удалось получить данные'); return; } const data = JSON.parse(res.responseText); console.log('получены данные:', data); const container = getOrCreateButtonBlock(); if (!container) { console.error('контейнер не найден'); return; } const installBtn = document.createElement('a'); installBtn.className = 'deposit_green button OverlayTrigger'; installBtn.href = data.code_url; installBtn.target = '_blank'; installBtn.innerHTML = ` <div style="display: flex; align-items: center; justify-content: center;"> <p style="margin: 0;">Установить расширение</p> </div> `; const installsBtn = document.createElement('a'); installsBtn.className = 'button OverlayTrigger'; installsBtn.href = data.url; installsBtn.target = '_blank'; installsBtn.innerHTML = ` ${data.total_installs.toLocaleString()} установок `; const updateBtn = document.createElement('a'); updateBtn.className = 'button OverlayTrigger'; updateBtn.href = data.url; updateBtn.target = '_blank'; updateBtn.innerHTML = ` Обновлён: ${new Date(data.code_updated_at).toLocaleDateString('ru-RU')} `; container.appendChild(installBtn); container.appendChild(installsBtn); container.appendChild(updateBtn); console.log('все кнопки успешно добавлены'); }, onerror: function (e) { console.error('ошибка запроса:', e); } }); function getOrCreateButtonBlock() { let container = document.querySelector('.contactToSellerButtons'); if (container) return container; const message = document.querySelector('.messageContent'); if (!message) return null; container = document.createElement('div'); container.className = 'contactToSellerButtons'; container.style.marginTop = '20px'; message.appendChild(container); return container; } })();