Greasy Fork

Greasy Fork is available in English.

Mangadex Group Blocker

To block groups on Mangadex's latest releases page

当前为 2021-10-28 提交的版本,查看 最新版本

您需要先安装一个扩展,例如 篡改猴Greasemonkey暴力猴,之后才能安装此脚本。

You will need to install an extension such as Tampermonkey to install this script.

您需要先安装一个扩展,例如 篡改猴暴力猴,之后才能安装此脚本。

您需要先安装一个扩展,例如 篡改猴Userscripts ,之后才能安装此脚本。

您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。

您需要先安装用户脚本管理器扩展后才能安装此脚本。

(我已经安装了用户脚本管理器,让我安装!)

您需要先安装一款用户样式管理器扩展,比如 Stylus,才能安装此样式。

您需要先安装一款用户样式管理器扩展,比如 Stylus,才能安装此样式。

您需要先安装一款用户样式管理器扩展,比如 Stylus,才能安装此样式。

您需要先安装一款用户样式管理器扩展后才能安装此样式。

您需要先安装一款用户样式管理器扩展后才能安装此样式。

您需要先安装一款用户样式管理器扩展后才能安装此样式。

(我已经安装了用户样式管理器,让我安装!)

// ==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     http://greasyfork.icu/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);
}});