MangafoxCensor

Excludes manga from listing by genre. Shows additional information on each item.

Vous devrez installer une extension telle que Tampermonkey, Greasemonkey ou Violentmonkey pour installer ce script.

Vous devrez installer une extension telle que Tampermonkey pour installer ce script.

Vous devrez installer une extension telle que Tampermonkey ou Violentmonkey pour installer ce script.

Vous devrez installer une extension telle que Tampermonkey ou Userscripts pour installer ce script.

Vous devrez installer une extension telle que Tampermonkey pour installer ce script.

Vous devrez installer une extension de gestionnaire de script utilisateur pour installer ce script.

(J'ai déjà un gestionnaire de scripts utilisateur, laissez-moi l'installer !)

Vous devrez installer une extension telle que Stylus pour installer ce style.

Vous devrez installer une extension telle que Stylus pour installer ce style.

Vous devrez installer une extension telle que Stylus pour installer ce style.

Vous devrez installer une extension du gestionnaire de style pour utilisateur pour installer ce style.

Vous devrez installer une extension du gestionnaire de style pour utilisateur pour installer ce style.

Vous devrez installer une extension du gestionnaire de style pour utilisateur pour installer ce style.

(J'ai déjà un gestionnaire de style utilisateur, laissez-moi l'installer!)

// ==UserScript==
// @name        MangafoxCensor
// @namespace   *mangafox.*/*
// @include     *mangafox.*/*
// @exclude    *mangafox.*/manga*
// @version     1.2.5
// @author        KatzSmile
// @description	  Excludes manga from listing by genre. Shows additional information on each item.
// @require        https://code.jquery.com/jquery-2.1.3.min.js
// ==/UserScript==
var styles = "<style type=\"text/css\">.cfmanga{background:#222;width: 600px;font-size: 11px;color: #fff;text-align: left;}.cfmangaheader{background:#000;padding: 4px;height: 16px;margin: 0;display: block;}.cfmangalink{color: #ff5400;display: block;font-size: 14px;font-weight: 700;line-height: 7px;float:left}.cfmangaupdate{float: right;line-height: 14px;padding-right: 10px;}.cfmangadata{clear:both;width:auto;display:table-row;font-size: 11px;margin: 0;}.cfmangadatacolumn{float:left;position: relative;display:table-column;}.cfmangarank{top: 0.4em;color: #333;float: right;font-size: 1000%;line-height: 0;position: relative;z-index: 0;}#updates dt {width:100% !important;padding-left: 0px !important}#updates span.chapter:before{content: \"\\2022  \";}#updates span.chapter{padding-left: 0px !important;width:330px !important;}.click-nav {float: left;margin-top: 21px;position: absolute;z-index: 100;width:138px;}.click-nav ul {position:relative;font-weight:900;}.click-nav ul li {background: #fff;position:relative;list-style:none;cursor:pointer;}.click-nav ul li ul {position:absolute;left:0;right:0;}.click-nav ul .clicker {height: 21px;position:relative;background:#2284B5;color:#FFF;}.click-nav ul .clicker:hover,.click-nav ul .active {background:#196F9A;}.click-nav ul li a {transition:background-color 0.2s ease-in-out;-webkit-transition:background-color 0.2s ease-in-out;-moz-transition:background-color 0.2s ease-in-out;display:block;padding:6px 0 6px 25px;background:#2284b5;color:#FFF;text-decoration:none;}.click-nav ul li a:hover {background:#F2F2F2;color:#000;}.click-nav .no-js ul {display:none;}.click-nav .no-js:hover ul {display:block;}</style>";
$('head').append(styles);

var menuscript=document.createElement("script");
menuscript.type = "text/javascript";
menuscript.innerHTML = "function createCookie(name,value,days){if (days) {var date = new Date();date.setTime(date.getTime()+(days*24*60*60*1000));var expires = \"; expires=\"+date.toGMTString();}else var expires = \"\"; document.cookie = name+\"=\"+value+expires+\"; path=/\";}function setgenre(){var genres = [];$('span.genres').find('input[name]').each(function(){if (this.checked){genres.push(this.value);}});createCookie('cfgenres',genres.toString(),365);} function applysettings(){var settings = [];$('span.settings').find('input[name]').each(function(){if (this.checked){settings.push(this.value);}});createCookie('cfsettings',settings.toString(),365);} $(function (){$('.click-nav > ul').toggleClass('no-js cfjs');$('.click-nav .cfjs ul').hide();$('.click-nav .cfjs').click(function(e){$('.click-nav .cfjs ul').slideToggle(100);$('.clicker').toggleClass('active');  e.stopPropagation();});$(document).click(function(){if ($('.click-nav .cfjs ul').is(':visible')){$('.click-nav .cfjs ul', this).slideUp();$('.clicker').removeClass('active');}});});";
document.getElementsByTagName('head')[0].appendChild(menuscript);

var ul = $("ul#updates");
var table = $("table#listing");

function readCookie(name) {
    var nameEQ = name + "=";
    var ca = document.cookie.split(';');
    for(var i=0;i < ca.length;i++) {
        var c = ca[i];
        while (c.charAt(0)==' ') c = c.substring(1,c.length);
        if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length,c.length);
    }
    return null;
}

var genreslist = ["Action","Adult","Adventure","Comedy","Doujinshi","Drama","Ecchi","Fantasy","Gender Bender","Harem","Historical","Horror","Josei","Martial Arts","Mature","Mecha","Mystery","One Shot","Psychological","Romance","School Life","Sci-Fi","Seinen","Shoujo","Shoujo Ai","Shounen","Shounen Ai","Slice Of Life","Smut","Sports","Supernatural","Tragedy","Webtoons","Yaoi","Yuri"];
var inputs = "";
for (var i=0; i<genreslist.length; i++){
	inputs += "<li style=\"padding-left: 10px;\"><label style=\"display: block;padding-left: 15px;text-indent: -15px;\"><input style=\"width: 13px;height: 13px;padding: 0;margin:0;vertical-align: bottom;position: relative;top: -2px;*overflow: hidden;\" type=\"checkbox\" name=\""+genreslist[i]+"\" value=\""+genreslist[i]+"\" onClick=\"setgenre()\" />&nbsp;"+genreslist[i]+"</label></li>"
}
var settings = "<li style=\"padding-left: 10px;\" title=\"Toggle show additional information on each item in list\"><label style=\"display: block;padding-left: 15px;text-indent: -15px;\"><input style=\"width: 13px;height: 13px;padding: 0;margin:0;vertical-align: bottom;position: relative;top: -2px;*overflow: hidden;\" type=\"checkbox\" name=\"Extended\" value=\"Extended\" onClick=\"applysettings()\" />&nbsp;Extended view</label></li>";

var menudiv = "<div class=\"click-nav\"><ul class=\"no-js\"><li><a href=\"#\" class=\"clicker\" style=\"padding: 10px 0 6px 12px;\">Mangafox Censor</a><ul><span class=\"genres\"><form action=\"#\"><li style=\"padding-left: 4px;\" title=\"Select genres to exclude\"><u>..::filter by genre::..</u></li>"+inputs+"</form></span><span class=\"settings\"><form action=\"#\"><li style=\"padding-left: 25px;\"><u>..::settings::..</u></li>"+settings+"</form></span><li style=\"padding-left: 7px;\"><u>..::version 1.2.5::..</u></li><li><a href=\"#\" onClick=\"window.location.reload()\">Apply changes</a></li></ul></li></ul></div>";
$(menudiv).insertBefore( $( "ul#menu" ) );

var censored = [];
var cfgenres = readCookie('cfgenres')
if (cfgenres) {
	censored = cfgenres.split(",");
	
	var menu = $("span.genres");
	$(menu)
		.find('input[name]') 
			.each(function() {	
				if (censored!=[]){
					if (new RegExp(censored.join("|")).test(this.value)){
						this.checked = true;
					}
				}
			});
}

var opts = [];
var cfsettings = readCookie('cfsettings')
if (cfsettings) {
	opts = cfsettings.split(",");

	var optmenu = $("span.settings");
	$(optmenu)
		.find('input[name]') 
			.each(function() {
				if (opts!=[]){
					if (new RegExp(opts.join("|")).test(this.value)){
						this.checked = true;
					}
				}
			});
}

function mangablock(thislink, data){
	var link = thislink.href;
	var lclass = thislink.className;
	var sid = thislink.rel;
	var em = thislink.parentNode.getElementsByTagName("em");
	var updated = "";
	var i = 0;
	for (i=em.length; i>=0; i--){
		if (em[i] && em[i].innerHTML!==null){
			updated = em[i].innerHTML;
		}
	}
	var span = thislink.parentNode.getElementsByTagName("span");
	var tag = "";
	for (i=span.length; i>=0; i--){
		if (span[i] && span[i].innerHTML!==null){
			tag = span[i].outerHTML;
		}
	}

	var childs = thislink.parentNode.parentNode.children[1].innerHTML;
	var block = "<div class=\"cfmanga\" style=\"width: 600px;\"><h3 class=\"cfmangaheader\"><a rel=\""+sid+"\" href=\""+link+"\" class=\""+lclass+" cfmangalink\" style=\"font-weight: 700;position: absolute;z-index: 1;\">"+data[0]+" ("+data[8]+") "+tag+"</a><span style=\"float: right;\" title=\""+data[7]+"\" class=\"stars star"+data[6]+"\"></span><span class=\"cfmangaupdate\">"+updated+"</span></h3><div class=\"cfmangadata\"  style=\"width: 600px;\"><h5 class=\"cfmangarank\">"+data[5]+"</h5><div class=\"cfmangadatacolumn\" style=\"width:100px;\"><a rel=\""+sid+"\" href=\""+link+"\"><img border=\"0\" width=\"100\" src=\"http://l.mfcdn.net/store/manga/"+sid+"/cover.jpg\"></a></div><div class=\"cfmangadatacolumn\" style=\"padding: 10px;width:480px;\"><span title=\""+data[1]+"\">"+data[1].substring(0, 60)+"...</span><hr>Genre: <i>"+data[2]+"</i><hr>"+data[9].substring(0, 256)+"...<br><hr>"+childs+"</div></div>";
	return block;
}

$(ul)
	.find('a[rel]')
        .each(function() {
			var thislink = this;

			jQuery.post('http://mangafox.me/ajax/series.php', {'sid': thislink.rel}, function (data) {	
						if (!data) return;
						if (data[2]!==''){
							if (new RegExp(censored.join("|")).test(data[2])){
								thislink.parentNode.parentNode.remove();
							}
						}
						if (opts.length > 0 && new RegExp(opts.join("|")).test("Extended")){									
							thislink.parentNode.parentNode.innerHTML = mangablock(thislink, data);	
						}
                    }, "json");
        })
;

$(table)
	.find('a[rel]')
        .each(function() {
			var thislink = this;
			jQuery.post('http://mangafox.me/ajax/series.php', {'sid': thislink.rel}, function (data) {	
						if (!data) return;
						if (data[2]!==''){
							if (new RegExp(censored.join("|")).test(data[2])){
								thislink.parentNode.parentNode.remove();
							}
						}
                    }, "json");
        })
;