Greasy Fork

Mangadex Group Blocker

To block groups on Mangadex's latest releases page

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

// ==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.4
// @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 > 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) {
    // If it sometimes doesn't work try refreshing. F12 > Console to view any possible errors.
    // <Cannot read property 'childElementCount' of null> sometimes appear at the start of a new latest page for some reason but stop after the next page.
    console.log(e);
}});