A simple script to remove dead torrents from the browse section of Nyaa.
- // ==UserScript==
- // @name NyaaDeadTorrents
- // @namespace http://tampermonkey.net/
- // @version 3.1
- // @description A simple script to remove dead torrents from the browse section of Nyaa.
- // @author Arjix
- // @include https://nyaa.si/*
- // @include https://sukebei.nyaa.si/*
- // @include https://meowinjapanese.cf/*
- // @require https://code.jquery.com/jquery-3.5.1.min.js
- // @grant GM.setValue
- // @grant GM.getValue
- // ==/UserScript==
- if (!localStorage.getItem("NyaaRemoveRule")) {
- localStorage.setItem("NyaaRemoveRule", "seeds")
- }
- function submitSetting() {
- let value = document.getElementById("removeDeadTorrentsRule").value
- localStorage.setItem("NyaaRemoveRule", value)
- }
- function removeTorrent(torrent, count) {
- torrent.parentNode.removeChild(torrent)
- console.log("Removed torrent with index of: " + count.toString())
- }
- window.addEventListener("load", function () {
- const title = document.querySelector("title").innerText
- const allMeta = document.head.querySelectorAll("meta")
- const desc = allMeta[allMeta.length - 1].content
- if ("Browse :: Nyaa" === title || desc === "Nyaa homepage" || "Browse :: Sukebei" === title || desc === "Sukebei homepage" || desc.includes("Search for ") || desc.includes("Torrents uploaded by ")) {
- let torrents = document.querySelectorAll(".table-responsive > table > tbody > tr")
- var torrentsCount = torrents.length
- let removeRule = localStorage.getItem("NyaaRemoveRule")
- for (let count = 0; count < torrents.length; count++) {
- let seeds = torrents[count].querySelector("td:nth-child(6)").innerText
- let leachers = torrents[count].querySelector("td:nth-child(7)").innerText
- if (seeds == "0" && removeRule == "seeds") {
- removeTorrent(torrents[count], count)
- torrentsCount = torrentsCount - 1
- } else if (leachers == "0" && removeRule == "leachers") {
- removeTorrent(torrents[count], count)
- torrentsCount = torrentsCount - 1
- } else if (seeds == "0" && leachers == "0" && removeRule == "both") {
- removeTorrent(torrents[count], count)
- torrentsCount = torrentsCount - 1
- }
- }
- if (torrentsCount <= 0) {
- let pagination = document.querySelectorAll("ul.pagination > li")
- let nextPage = pagination[pagination.length - 1].childNodes[0].href
- window.location.replace(nextPage)
- }
- } else if (document.location.href == "https://nyaa.si/profile") {
- if (localStorage.getItem("NyaaRemoveRule") == "seeds") {
- var choiceOne = "<option selected>"
- } else { var choiceOne = "<option>" }
- if (localStorage.getItem("NyaaRemoveRule") == "leachers") {
- var choiceTwo = "<option selected>"
- } else { var choiceTwo = "<option>" }
- if (localStorage.getItem("NyaaRemoveRule") == "both") {
- var choiceThree = "<option selected>"
- } else { var choiceThree = "<option>" }
- var settings = `<div class="row">
- <div class="form-group col-md-4">
- <p>DeadTorrent removeRule:
- <select id="removeDeadTorrentsRule">` +
- choiceOne + "seeds</option>" +
- choiceTwo + "leachers</option>" +
- choiceThree + "both</option>" +
- `</select></p>
- </div>
- </div>`
- $("#preferences-change > form > .row").first().after(settings)
- document.getElementById("submit_settings").addEventListener('click', () => { submitSetting(); }, false);
- }
- }, false)