MangafoxCensor

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

Aby zainstalować ten skrypt, wymagana jest instalacje jednego z następujących rozszerzeń: Tampermonkey, Greasemonkey lub Violentmonkey.

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

Aby zainstalować ten skrypt, wymagana jest instalacje jednego z następujących rozszerzeń: Tampermonkey, Violentmonkey.

Aby zainstalować ten skrypt, wymagana będzie instalacja rozszerzenia Tampermonkey lub Userscripts.

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

Aby zainstalować ten skrypt, musisz zainstalować rozszerzenie menedżera skryptów użytkownika.

(Mam już menedżera skryptów użytkownika, pozwól mi to zainstalować!)

You will need to install an extension such as Stylus to install this style.

You will need to install an extension such as Stylus to install this style.

You will need to install an extension such as Stylus to install this style.

Będziesz musiał zainstalować rozszerzenie menedżera stylów użytkownika, aby zainstalować ten styl.

Będziesz musiał zainstalować rozszerzenie menedżera stylów użytkownika, aby zainstalować ten styl.

Musisz zainstalować rozszerzenie menedżera stylów użytkownika, aby zainstalować ten styl.

(Mam już menedżera stylów użytkownika, pozwól mi to zainstalować!)

// ==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");
        })
;