// ==UserScript== // @name Mangadex Group Blocker // @namespace Violentmonkey Scripts // @match https://mangadex.org/titles/latest* // @require http://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js // @require https://greasyfork.org/scripts/31940-waitforkeyelements/code/waitForKeyElements.js?version=209282 // @grant none // @version 2.2 // @author Onemanleft // @description To block groups on Mangadex's latest releases page // @downloadURL none // ==/UserScript== // Start and end are the formats for the relevant element on the page. const start = "#__layout > div > div.flex-grow.flex.flex-col.flex-shrink > div.flex-grow > div > div:nth-child(2) > div.mb-12 > div:nth-child("; // Normal groups const end = ") > div > div.chapter-feed__chapters > div > div:nth-child(1) > div > div > div.flex.justify-between.md\\:grid.md\\:grid-cols-3 > div"; // Special groups like Bilibili Comics with the unique icon const end2 = ") > div > div.chapter-feed__chapters > div > div:nth-child(1) > div > div > a"; // Title if you want to debug at the end of the switch expression const title = ") > div > a.chapter-feed__title"; // Wait for the chapters to be loaded. waitForKeyElements(".flex-grow", function () { try { // Count is how many chapters were loaded. const count = document.querySelector("#__layout > div > div.flex-grow.flex.flex-col.flex-shrink > div.flex-grow > div > div:nth-child(2) > div.mb-12").childElementCount; // Max "count" number of entries per page. for (let i = 1; i <= count; i++) { // This shows the group name. if (document.querySelector(start + i + end) != null) { var x = document.querySelector(start + i + end).innerText; } else { var x = document.querySelector(start + i + end2).innerText; } switch (x) { // The groups you want to block. case "Azuki Manga": case "Bilibili Comics": case "Comikey": case "MangaPlus": /* To block more groups add a line after 'case "Bilibili Comics":' like case "Test": It IS a COLON (:) NOT a SEMICOLON (;) If you want to add pair group releases do case "Group 1\nGroup 2": */ // Uncomment the line below if you want to see what got hidden by deleting the // and then going to F12 > Console // console.log("Hid " + x + " at count " + i + " titled " + document.querySelector(start + i + title).innerText); // This blocks the element if it matches the group name. document.querySelector(start + i + ")").style.display="none"; } } } catch (e) { // Error will probably be at F12 console probably meaning it got to the end of the page, // Or at the start of a new latest page for some reason but stop after next pages. console.log(e); }});