Greasy Fork is available in English.

Copy Magnet URL

Добавляет кнопку «Копировать магнитный URL» рядом с магнитными ссылками и удаляет дополнительную информацию из магнитных ссылок.

// ==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
// ==/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 = $('<button>Копировать Magnet</button>').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'));
    });
  }
})();