Greasy Fork

Mangadex Group Blocker

To block groups on Mangadex's latest releases page

目前为 2021-10-28 提交的版本。查看 最新版本

// ==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.0
// @author      Onemanleft
// @description To block groups on Mangadex's latest releases page
// ==/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 > div.chapter-feed__title > a > span";
// 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 <TypeError: Cannot read property 'innerText' of null> at F12 console probably meaning it got to the end of the page,
	// Or <Cannot read property 'childElementCount' of null> at the start of a new latest page for some reason but stop after next pages.
	console.log(e);
}});