magnet kinozal

Magnet maker for kinozal.tv, kinozal.guru, kinozal.me

// ==UserScript==
// @name          magnet kinozal
// @version       0.2012
// @description   Magnet maker for kinozal.tv, kinozal.guru, kinozal.me
// @match         https://kinozal.tv/details.php* 
// @match         https://kinozal.tv/comment.php*
// @match         https://kinozal.guru/details.php* 
// @match         https://kinozal.guru/comment.php*
// @match         https://kinozal.me/details.php* 
// @match         https://kinozal.me/comment.php*
// @run-at        document-end
// @grant         none
// @copyright     2022, 4ipon4ik, vanoc
// @namespace     vanoc
// @license       MIT
// ==/UserScript==

// за исходник взят https://greasyfork.org/ru/scripts/443388-magnet-kinozal-tv
// заменена иконка и добавлены @match kinozal.guru, kinozal.me

const parser = new DOMParser();

// Storing download button reference.
const downButt = document.querySelector(".mn1_content > table > tBody > tr > td");

const magnetIcon = '<img src="https://myip.vanoc.me/files/magnet.png" width="25" height="25">';

// Main function -> async so we can use await syntax with fetch. 
(async () => {
  // Fetching torrent hash string.
  const response = await (await fetch(`/get_srv_details.php?id=${(new URL(location.href)).searchParams.get("id")}&action=2`)).text();
      
  // Converting response text to dom element, so we can easily traverse and extract torrent hash with querySelector.
  const dom = parser.parseFromString(response, "text/html");
  const torrentHash = dom.documentElement.querySelector("ul > li:first-child").innerText.substr(10);
      
  // And finally adding magnet link to the page. 🙂
  downButt.insertAdjacentHTML("afterend", `<td style = "padding-right: 5px;"><a title="Magnet-ссылка" href="magnet:?xt=urn:btih:${torrentHash}">${magnetIcon}</a></td>`);
})(); // Self invoking function.