Last active
December 2, 2022 01:27
-
-
Save lemenkov/9588282 to your computer and use it in GitHub Desktop.
Rutracker Magnet + trackers addon for GreaseMonkey
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// ==UserScript== | |
// @name Rutracker.org Magnet URLs | |
// @namespace rutrackerorg-magnet-urls | |
// @description Transforms torrent hash into a magnet url | |
// @include https://rutracker.org/* | |
// @include https://rutracker.cr/* | |
// @include https://rutracker.net/* | |
// @include https://rutracker.nl/* | |
// @include http://rutrackerripnext.onion/* | |
// @version 9 | |
// @grant none | |
// ==/UserScript== | |
// No longer using udp://tracker.opentrackr.org:1337/announce - it has hash blacklists | |
// No longer using udp://open.demonii.com:1337 - stopped operation | |
var trackers = [ | |
"udp://tracker.coppersurfer.tk:6969/announce", | |
"udp://tracker.leechers-paradise.org:6969/announce", | |
"udp://tracker.internetwarriors.net:1337/announce", | |
"udp://exodus.desync.com:6969/announce", | |
"udp://tracker.openbittorrent.com:80/announce", | |
"udp://tracker.sktorrent.net:6969/announce", | |
"udp://tracker.zer0day.to:1337/announce", | |
"udp://tracker.pirateparty.gr:6969/announce" | |
] | |
if (window.BB.IS_GUEST) { | |
var e = document.getElementsByClassName('magnet-link')[0]; | |
if (e) { | |
var magnet_link = e.getAttribute("href"); | |
var hash = magnet_link.match(/^magnet:\?xt=urn:btih:([0-9A-F]{40})&tr=.*/)[1]; | |
if (hash) { | |
var rutracker_tracker = decodeURIComponent(magnet_link.match(/.*\&tr=(.*)$/)[1]); | |
trackers.unshift(rutracker_tracker); | |
var urlencoded_trackers = trackers.map(function(tracker) { | |
return "&tr=" + encodeURIComponent(tracker); | |
}); | |
e.innerText = hash; | |
e.innerHTML = "<a href='magnet:?xt=urn:btih:" + hash + urlencoded_trackers.join('') + "'>" + hash + "</a>"; | |
} | |
} | |
} | |
else { | |
var e = document.getElementById("tor-hash"); | |
if (e) { | |
var hash = e.innerText; | |
if (/^[0-9A-F]{40}$/.test(hash)) { | |
var parent_href = document.getElementsByClassName('med magnet-link magnet-link-16')[0]; | |
var magnet_link = decodeURIComponent(parent_href.getAttribute("href")); | |
var rutracker_tracker = decodeURIComponent(magnet_link.match(/.*\&tr=(.*)$/)[1]); | |
if(rutracker_tracker) | |
trackers.unshift(rutracker_tracker); | |
var urlencoded_trackers = trackers.map(function(tracker) { | |
return "&tr=" + encodeURIComponent(tracker); | |
}); | |
e.innerHTML = "<a href='magnet:?xt=urn:btih:" + hash + urlencoded_trackers.join('') + "'>" + hash + "</a>"; | |
//e.innerHTML = rutracker_tracker; | |
} | |
} | |
} |
Updated list of working trackers.
Updated again.
Updated to be usable w/o registration.
Спасибо за скрипт.
Публичные трекеры можно взять у меня https://github.com/Xant1k/Trackers
И ещё когда-то скрипт не работал для Firefox. Советовали заменить e.innerText; > e.textContent;
@Xant1k, о круто - там onion-трекер есть. А есть какие-то ограничения на недоступные трекеры и на их количество? Хотя это все, скорее всего, зависит от реализации torrent-клиента.
есть какие-то ограничения на недоступные трекеры и на их количество?
Вряд ли. Я пробовал добавлять множество различных (доступных и недоступных), никаких замечаний со стороны клиента не было.
Удалил http://rutracker.org, добавил другие домены для https://, добавил *.onion.
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Thanks!