// ==UserScript== // @name Copy Magnet URL // @name:uk Copy Magnet URL // @namespace https://greasyfork.org/users/1221433 // @version 1.0 // @description Добавляет кнопку «Копировать магнитный URL» рядом с магнитными ссылками и удаляет дополнительную информацию из магнитных ссылок. // @description:uk Додає кнопку «Копіювати URL-адресу магніту» поруч із магнітними посиланнями та обрізає додаткову інформацію з магнітних посилань // @author Sitego // @match *://rutor.info/* // @match *://nnmclub.to/* // @match *://rutracker.org/* // @match *://kinozal.tv/* // @icon https://cdnbunny.org/i/magnet.gif // @grant GM_setClipboard // @license MIT // @require https://cdnjs.cloudflare.com/ajax/libs/jquery/3.6.0/jquery.min.js // @downloadURL none // ==/UserScript== (function () { 'use strict'; // Функция для копирования текста в буфер обмена function copyToClipboard(text) { const input = document.createElement('textarea'); input.innerHTML = text; document.body.appendChild(input); input.select(); document.execCommand('copy'); document.body.removeChild(input); } // Функция для добавления кнопки "Копировать Magnet" рядом с магнет-ссылками function addCopyMagnetButton(link) { var magnetLink = link.split('&')[0]; // Обрезаем лишнее после хеша var copyButton = $('').css({ 'background-color': '#ff0000', // Красный цвет фона 'color': '#ffffff', // Белый цвет текста 'font-weight': 'bold', 'margin-bottom': '7px', 'border': 'none', // Убираем границы 'padding': '5px 10px', // Отступы внутри кнопки 'margin-left': '10px', // Отступ слева для разделения кнопок от ссылок 'cursor': 'pointer', // Курсор при наведении 'border-radius': '5px', // Закругление углов }).click(function () { // Изменение стиля кнопки на время нажатия $(this).css({ 'background-color': '#cc0000', // Темнокрасный цвет фона }); copyToClipboard(magnetLink); // Возвращение оригинального стиля после небольшой задержки setTimeout(function () { copyButton.css({ 'background-color': '#ff0000', // Возвращаем красный цвет фона }); }, 200); // Задержка 0.2 секунды }); if (window.location.hostname === 'kinozal.tv') { $('#containerdata').append(copyButton); } else { $(this).after(copyButton); } } // Проверка нахождения на сайте kinozal.tv if (window.location.hostname === 'kinozal.tv') { // Добавляем обработчик клика по ссылке для открытия блока с информацией о хеше $(document).on('click', 'a[onclick^="get_torm"]', function () { setTimeout(function () { var hashText = $('li:contains("Инфо хеш:")').text().replace('Инфо хеш:', '').trim(); var magnetLink = 'magnet:?xt=urn:btih:' + hashText; addCopyMagnetButton(magnetLink); }, 1000); // Добавляем задержку, чтобы дать время для загрузки информации }); } else { // Если не на kinozal.tv, то добавляем кнопки копирования рядом с магнет-ссылками сразу $('a[href^="magnet:"]').each(function () { addCopyMagnetButton.call(this, $(this).attr('href')); }); } })();