MagnetTrackerComplement

给网页上的磁链追加优质 tracker

  1. // ==UserScript==
  2. // @name MagnetTrackerComplement
  3. // @namespace https://github.com/cielpy/MagnetTrackerComplement
  4. // @version 0.366
  5. // @description 给网页上的磁链追加优质 tracker
  6. // @author cielpy
  7. // @include http://*
  8. // @include https://*
  9. // @grant none
  10. // @license MIT
  11. // @supportURL https://github.com/cielpy/MagnetTrackerComplement/issues
  12. // ==/UserScript==
  13.  
  14. // eslint-disable-next-line
  15. (function () {
  16. const trackerList = ["http%3A%2F%2Fall4nothin.net%3A80%2Fannounce.php","http%3A%2F%2Fbuny.uk%3A6969%2Fannounce","http%3A%2F%2Fkinorun.com%3A80%2Fannounce.php","http%3A%2F%2Fmasters-tb.com%3A80%2Fannounce.php","http%3A%2F%2Fmediaclub.tv%3A80%2Fannounce.php","http%3A%2F%2Fmilanesitracker.tekcities.com%3A80%2Fannounce","http%3A%2F%2Fnyaa.tracker.wf%3A7777%2Fannounce","http%3A%2F%2Fopen.acgnxtracker.com%3A80%2Fannounce","http%3A%2F%2Fopenbittorrent.com%3A80%2Fannounce","http%3A%2F%2Fopentracker.xyz%3A80%2Fannounce","http%3A%2F%2Fshare.camoe.cn%3A8080%2Fannounce","http%3A%2F%2Ft.nyaatracker.com%3A80%2Fannounce","http%3A%2F%2Ftorrent-team.net%3A80%2Fannounce.php","http%3A%2F%2Ftorrentzilla.org%3A80%2Fannounce","http%3A%2F%2Ftorrentzilla.org%3A80%2Fannounce.php","http%3A%2F%2Ftr.cili001.com%3A8070%2Fannounce","http%3A%2F%2Ftracker.files.fm%3A6969%2Fannounce","http%3A%2F%2Ftracker.gbitt.info%3A80%2Fannounce","http%3A%2F%2Ftracker.ipv6tracker.ru%3A80%2Fannounce","http%3A%2F%2Ftracker.openbittorrent.com%3A80%2Fannounce","http%3A%2F%2Ftracker.tfile.me%3A80%2Fannounce","http%3A%2F%2Ftracker.torrentyorg.pl%3A80%2Fannounce","http%3A%2F%2Fvps02.net.orel.ru%3A80%2Fannounce","http%3A%2F%2Fwww.all4nothin.net%3A80%2Fannounce.php","https%3A%2F%2F1337.abcvg.info%3A443%2Fannounce","https%3A%2F%2Fcarbon-bonsai-621.appspot.com%3A443%2Fannounce","https%3A%2F%2Ft1.tokhmi.xyz%3A443%2Fannounce","https%3A%2F%2Ftr.ready4.icu%3A443%2Fannounce","https%3A%2F%2Ftr.torland.ga%3A443%2Fannounce","https%3A%2F%2Ftracker.imgoingto.icu%3A443%2Fannounce","https%3A%2F%2Ftracker.kuroy.me%3A443%2Fannounce","https%3A%2F%2Ftracker.lilithraws.cf%3A443%2Fannounce","https%3A%2F%2Ftracker.nitrix.me%3A443%2Fannounce","https%3A%2F%2Ftracker.parrotsec.org%3A443%2Fannounce","https%3A%2F%2Ftracker.tamersunion.org%3A443%2Fannounce","https%3A%2F%2Ftrackme.theom.nz%3A443%2Fannounce","udp%3A%2F%2F9.rarbg.com%3A2810%2Fannounce","udp%3A%2F%2Fabufinzio.monocul.us%3A6969%2Fannounce","udp%3A%2F%2Fbt1.archive.org%3A6969%2Fannounce","udp%3A%2F%2Fbt2.archive.org%3A6969%2Fannounce","udp%3A%2F%2Fcode2chicken.nl%3A6969%2Fannounce","udp%3A%2F%2Fdiscord.heihachi.pw%3A6969%2Fannounce","udp%3A%2F%2Fengplus.ru%3A6969%2Fannounce","udp%3A%2F%2Fescorts.subventas.com%3A53%2Fannounce","udp%3A%2F%2Fexodus.desync.com%3A6969%2Fannounce","udp%3A%2F%2Ffe.dealclub.de%3A6969%2Fannounce","udp%3A%2F%2Fipv6.tracker.monitorit4.me%3A6969%2Fannounce","udp%3A%2F%2Fipv6.tracker.zerobytes.xyz%3A16661%2Fannounce","udp%3A%2F%2Fjeremylee.sh%3A6969%2Fannounce","udp%3A%2F%2Fmail.realliferpg.de%3A6969%2Fannounce","udp%3A%2F%2Fmovies.zsw.ca%3A6969%2Fannounce","udp%3A%2F%2Fopen.demonii.com%3A1337%2Fannounce","udp%3A%2F%2Fopen.tracker.cl%3A1337%2Fannounce","udp%3A%2F%2Fopentor.org%3A2710%2Fannounce","udp%3A%2F%2Fp4p.arenabg.com%3A1337%2Fannounce","udp%3A%2F%2Fretracker.hotplug.ru%3A2710%2Fannounce","udp%3A%2F%2Fthetracker.org%3A80%2Fannounce","udp%3A%2F%2Ftracker-de.ololosh.space%3A6969%2Fannounce","udp%3A%2F%2Ftracker.0x.tf%3A6969%2Fannounce","udp%3A%2F%2Ftracker.altrosky.nl%3A6969%2Fannounce","udp%3A%2F%2Ftracker.auctor.tv%3A6969%2Fannounce","udp%3A%2F%2Ftracker.beeimg.com%3A6969%2Fannounce","udp%3A%2F%2Ftracker.birkenwald.de%3A6969%2Fannounce","udp%3A%2F%2Ftracker.bitsearch.to%3A1337%2Fannounce","udp%3A%2F%2Ftracker.blacksparrowmedia.net%3A6969%2Fannounce","udp%3A%2F%2Ftracker.dler.com%3A6969%2Fannounce","udp%3A%2F%2Ftracker.haynet.io%3A6969%2Fannounce","udp%3A%2F%2Ftracker.jordan.im%3A6969%2Fannounce","udp%3A%2F%2Ftracker.leech.ie%3A1337%2Fannounce","udp%3A%2F%2Ftracker.monitorit4.me%3A6969%2Fannounce","udp%3A%2F%2Ftracker.ololosh.space%3A6969%2Fannounce","udp%3A%2F%2Ftracker.openbittorrent.com%3A6969%2Fannounce","udp%3A%2F%2Ftracker.opentrackr.org%3A1337%2Fannounce","udp%3A%2F%2Ftracker.pomf.se%3A80%2Fannounce","udp%3A%2F%2Ftracker.srv00.com%3A6969%2Fannounce","udp%3A%2F%2Ftracker.theoks.net%3A6969%2Fannounce","udp%3A%2F%2Ftracker.tiny-vps.com%3A6969%2Fannounce","udp%3A%2F%2Ftracker.torrent.eu.org%3A451%2Fannounce","udp%3A%2F%2Ftracker.zerobytes.xyz%3A1337%2Fannounce","udp%3A%2F%2Ftracker0.ufibox.com%3A6969%2Fannounce","udp%3A%2F%2Ftracker1.bt.moack.co.kr%3A80%2Fannounce","udp%3A%2F%2Ftracker2.dler.com%3A80%2Fannounce","udp%3A%2F%2Fu.wwwww.wtf%3A1%2Fannounce","udp%3A%2F%2Fudp-tracker.shittyurl.org%3A6969%2Fannounce","udp%3A%2F%2Fvibe.sleepyinternetfun.xyz%3A1738%2Fannounce","udp%3A%2F%2Fwww.torrent.eu.org%3A451%2Fannounce"]
  17. const trackerListUrlPrams = `&tr=${trackerList.join('&tr=')}`
  18.  
  19. function appendTrackers(url) {
  20. let newUrl = url
  21. if (url.includes(' ')) {
  22. newUrl = url.replace(/ /g, '%20')
  23. }
  24. return newUrl + trackerListUrlPrams
  25. }
  26. const aTags = document.querySelectorAll('a')
  27.  
  28. for (let i = 0; i <= aTags.length; i += 1) {
  29. if (aTags[i] !== undefined && aTags[i].href !== undefined && aTags[i].href.startsWith('magnet:')) {
  30. aTags[i].href = appendTrackers(aTags[i].href)
  31. }
  32. }
  33.  
  34.  
  35.  
  36. const observer = new MutationObserver(((mutations) => {
  37. // eslint-disable-next-line
  38. for (const mutation of mutations) {
  39. if (mutation.type === 'childList') {
  40. function findAndChangeA(nodeList) {
  41. nodeList.forEach((node) => {
  42. if (node.localName === 'a' && node.href !== undefined && node.href !== null && node.href !== '') {
  43. if (node.href.startsWith('magnet:')) {
  44. // eslint-disable-next-line
  45. node.href = appendTrackers(node.href)
  46. }
  47. }
  48. if (node.childNodes !== undefined && node.childNodes !== null && node.childNodes.length !== 0) {
  49. findAndChangeA(node.childNodes)
  50. }
  51. })
  52. }
  53. findAndChangeA(mutation.addedNodes)
  54. }
  55. }
  56. }))
  57.  
  58. observer.observe(document, {
  59. attributes: false, childList: true, characterData: false, subtree: true,
  60. })
  61. }())

QingJ © 2025

镜像随时可能失效,请加Q群300939539或关注我们的公众号极客氢云获取最新地址