Greasy Fork

Mangadex Group Blocker

To block groups on Mangadex's latest releases page

目前为 2021-08-25 提交的版本。查看 最新版本

// ==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     1.3
// @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(";
const end = ") > div > div.chapter-feed__chapters > div > div:nth-child(1) > div > div:nth-child(3) > div > div";
// 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.
		switch (document.querySelector(start + i + end).innerText) {
		// The groups you want to block.
			case "Bilibili Comics":
			/* 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":
			*/
			// 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);
}});