Mangaupdates - Custom releases page

Splits releases page into to areas. One for Novels and one for Mangas. Also adds menu bar that allows to hide novels,mangas and oneshots.

当前为 2016-10-24 提交的版本,查看 最新版本

您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey 篡改猴Greasemonkey 油猴子Violentmonkey 暴力猴,才能安装此脚本。

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

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

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

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

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

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

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

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

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

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

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

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

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

// ==UserScript==
// @name        Mangaupdates - Custom releases page
// @version     2.21
// @description Splits releases page into to areas. One for Novels and one for Mangas. Also adds menu bar that allows to hide novels,mangas and oneshots.
// @namespace   https://greasyfork.org/en/scripts/10937-mangaupdates-custom-releases-page
// @include     https://www.mangaupdates.com/releases.html*
// @include     http://www.mangaupdates.com/releases.html*
// @copyright   2015+, MiPo91
// @grant       none
// @require     http://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js 
// ==/UserScript==

$( document ).ready(function() {

   // Otsikoiden laitto (paivamaarat)
   $(".titlesmall").each(function (){
       $(this).next().children().children().prepend('<tr><td width="44%" class="pad" style="background: rgb(240, 243, 247) none repeat scroll 0% 0%;"><b><a href="/releases.html?orderby=title">Title<span style="display:none;">(Novel)</span></a></b></td><td width="20%" class="pad" style="background: rgb(240, 243, 247) none repeat scroll 0% 0%;"><b><a href="/releases.html?">Release</a></b></td><td width="36%" class="pad" style="background: rgb(240, 243, 247) none repeat scroll 0% 0%;"><b><a href="/releases.html?orderby=groups">Groups</a></b></td></tr>');
       $(this).next().children().children().prepend("<tr><td colspan='3' style='background: #d1d1d1;color:#f3f3f3;font-size: 16px;padding:5px 0;'>" + $(this).text() + " (Novel)</td></tr>");
   });
    
    // Deleting oneshots
    if(document.cookie.indexOf('oneshot') >=0 && document.cookie.indexOf('mangas') < 0) {
        $("#main_content div div tr:contains('Oneshot')").each(function () {
            $(this).remove();
        });    
    }
    
    var novellit = [];
    $("#main_content div div tr:contains('(Novel)')").each(function () {
        $(this).children().removeAttr("bgcolor");        
        novellit.push($(this).html());
        
        $(this).remove();
    });
    
    // Deleting mangas
    if(document.cookie.indexOf('oneshot') < 0 && document.cookie.indexOf('mangas') >=0) {
        $("#main_content div div tr:not(:contains('Oneshot'))").each(function () {
            $(this).remove();
        });    
    }
    
    var muut = "";
    
    $("#main_content .alt").each(function(){
         // Otsikoiden laitto (paivamaarat)
        $(this).children().prepend("<tr><td colspan='3' style='background: #d1d1d1;color:#f3f3f3;font-size: 16px;padding:5px 0;'>"+ $(this).prev().text()+"</td></tr>");
        // Vanhat varit pois pohjasta
        $(this).children().children().children().children().removeAttr("bgcolor");
        
        $(this).children().children().children().each(function(i, el) {
            if (i % 2 === 0) {}
            else { 
                $(el).children().css('background', '#F0F3F7');
            }
        });
        
        muut += $(this).html();
    });
    
    
    var valikko = '<div id="valikko" style="margin-bottom:10px;">Options: <span id="oneshot" style="background:#d1d1d1;padding:3px;color:#fff;cursor:pointer;margin:0 3px;">Oneshots: '+(document.cookie.indexOf('oneshot') >=0 ? '<i style="color:#ff0000;">Hidden</i>' : '<i style="color:#00ff00;">Visible</i>')+'</span><span id="novels" style="background:#d1d1d1;padding:3px;color:#fff;cursor:pointer;margin:0 3px;">Novels: '+(document.cookie.indexOf('novels') >=0 ? '<i style="color:#ff0000;">Hidden</i>' : '<i style="color:#00ff00;">Visible</i>')+'</span><span id="mangas" style="background:#d1d1d1;padding:3px;color:#fff;cursor:pointer;margin:0 3px;">Mangas: '+(document.cookie.indexOf('mangas') >=0 ? '<i style="color:#ff0000;">Hidden</i>' : '<i style="color:#00ff00;">Visible</i>')+'</span><span id="hoverShow" style="background:#d1d1d1;padding:3px;color:#fff;cursor:pointer;margin:0 3px;">Hover: '+(document.cookie.indexOf('hoverShow') >=0 ? '<i style="color:#ff0000;">Hidden</i>' : '<i style="color:#00ff00;">Visible</i>')+'</span></div>';
    var info = '<div id="info" style="margin-bottom:30px;font-size:10px;"><i>- Click options from above to hide/show content of your choice</i></div>';
    var otsikko = '<div style="margin-top:-30px;"><h3 style="float:left; width:49%;">Novels</h3><h3 style="float:right; width:49%;">'+(document.cookie.indexOf('oneshot') >= 0 ? "Mangas" : (document.cookie.indexOf('mangas') >= 0 ? "Oneshots" : "Mangas / Oneshots"))+'</h3></div>';
    var otsikko2 = '<div style="margin-top:-30px;"><h3 style="float:left; width:100%;">Novels</h3></div>';
    var otsikko3 = '<div style="margin-top:-30px;"><h3 style="float:left; width:100%;">'+(document.cookie.indexOf('oneshot') >= 0 ? "Mangas" : (document.cookie.indexOf('mangas') >= 0 ? "Oneshots" : "Mangas / Oneshots"))+'</h3></div>';
    var sisusNovellit = '<div class="alt" style="width:'+(document.cookie.indexOf('mangas') >=0 && document.cookie.indexOf('oneshot') >= 0 ? "100%" : "49%")+'; float:left; border:1px solid #ccc;overflow:hidden;margin-top:-10px;"><table class="text" cellspacing="0" cellpadding="0" border="0">';
    var sisusMuut = '<div class="alt" style="width:'+(document.cookie.indexOf('novels') >=0 ? "100%" : "49%")+'; float:right; border:1px solid #ccc;overflow:hidden;margin-top:-10px;">' + muut + '</div>';
    
    
    var novellit = novellit.map(function(d) { return d.replace('(Novel)', ''); });
    
    
    for(i = 0; i < novellit.length;i++) {
        j = i;
        if(j % 2 === 0) {
            sisusNovellit += "<tr style='padding: 3px;'>"+novellit[i]+"</tr>";        
        }else {
            sisusNovellit += "<tr style='background: #F0F3F7; padding: 3px;'>"+novellit[i]+"</tr>";       
        }
    }
    
    sisusNovellit += "</table></div>";
    
    var loput = "<div style='width: 100%;overflow:hidden;'>";
    loput += "<br /><center>" + $("#main_content div table:last").html() + "</center><br />";

    $("#main_content center").each(function() {
        loput += "<center>" + $(this).html() + "</center><br />";
    });
    loput += "</div>";
    
    
    
    if(document.cookie.indexOf('novels') >=0) {
       $("#main_content div").html(valikko + info + otsikko3 + sisusMuut); 
    }
    
    if(document.cookie.indexOf('mangas') >=0) {
       $("#main_content div").html(valikko + info + otsikko2 + sisusNovellit);
    }
    
    if((document.cookie.indexOf('mangas') < 0) && (document.cookie.indexOf('novels') < 0)) {
       $("#main_content div").html(valikko + info + otsikko + sisusNovellit + sisusMuut);     
    }
    
    if((document.cookie.indexOf('mangas') >=0) && (document.cookie.indexOf('novels') >=0)) {
       $("#main_content div").html(valikko + info);     
    }
    
    if((document.cookie.indexOf('mangas') >=0) && (document.cookie.indexOf('novels') >=0) && (document.cookie.indexOf('oneshot') < 0)) {
       $("#main_content div").html(valikko + info + otsikko3 + sisusMuut); 
    }
    
    if((document.cookie.indexOf('mangas') >=0) && (document.cookie.indexOf('novels') < 0) && (document.cookie.indexOf('oneshot') < 0)) {
       $("#main_content div").html(valikko + info + otsikko + sisusNovellit + sisusMuut);     
    }
    
    
    
    $("#main_content").append(loput);
    
    $("#valikko span").click(function(e){
        var cookie_nimi = $(this).closest('span').attr('id');

        if(document.cookie.indexOf(cookie_nimi) >= 0) {
            document.cookie = cookie_nimi + '=;expires=Thu, 01 Jan 1970 00:00:01 GMT;';
        }
        else {
           document.cookie = cookie_nimi + '=;expires=Thu, 01 Jan 2018 00:00:01 GMT;';
        }
        
        location.reload(); 
    });
    

    if(document.cookie.indexOf('hoverShow') < 0) {
        hoverStuff();
        var kuvanHaku;
        function hoverStuff() {
            $("#main_content").append("<div id=\"seriesHover\"></div>");

            $(".alt tr").mouseenter(function(e){
                e.stopPropagation();

                linkki = $(this).children().children('a[title="Series Info"]');


                 if (linkki.attr('href').length != 30) {
                     if(kuvanHaku && kuvanHaku.abort) kuvanHaku.abort();

                     parentOffset = $(this).position(); 
                     parentWidth = $(this).width();

                     relX = parentOffset.left;
                     relY = parentOffset.top + $(this).outerHeight(true); 

                     elementti = this;
                     kuvaDivi = $(this).find('.hoverInfo');

                     if(typeof kuvaDivi.html() == 'undefined') {
                         kuvanHaku = $.ajax({
                             url: linkki.attr('href'),
                             type: 'GET',
                             beforeSend: function() {
                                 $("#seriesHover").html('<div style="padding:0 5px;">Loading image...</div>');
                             },
                             success: function(data) {
                                 kuva = $(data).find('.sContainer:last .sContent:first img').attr('src');
                                 genretTeksti = '';
                                 genretPath =  $(data).find('.sContainer:last .sContent:eq(1) a');
                                 author =  $(data).find('.sContainer:last .sContent:eq(5)').text().split('[Add]');
                                 author = author.join();
                                 author = author.replace(/\s/g, '');

                                 artist =  $(data).find('.sContainer:last .sContent:eq(6)').text().split('[Add]');
                                 artist = artist.join();
                                 artist = artist.replace(/\s/g, '');

                                 //artist =  $(data).find('.sContainer:last .sContent:eq(6)').text();
                                 year =  $(data).find('.sContainer:last .sContent:eq(7)').text();
                                 rating =  $(data).find('.sContainer:first .sContent:eq(11)').text().split(".0")[0].substr(9);

                                 genret = genretPath.each(function(index){
                                     if(index == genretPath.length - 2) {
                                         genretTeksti += $(this).text();
                                     }
                                     else if(index != genretPath.length - 1) {
                                         genretTeksti += $(this).text() +', ';    
                                     }
                                 });

                                 if(typeof kuva != 'undefined') {
                                     kuva = '<div class="kuva"><img src="'+kuva+'" width="121px"/></div>';
                                 } else {
                                     kuva = '<div class="kuva" style="padding:5px 5px;">No image has been found.</div>';
                                 }

                                 $(elementti).append('<div class="hoverInfo" style="display: none;">'+kuva+'<div class="genret">'+genretTeksti+'</div><div class="muut"><div>Year: '+year+'</div><div>Rating: '+rating+'</div><div>Author: '+author+'</div><div>Artist: '+artist+'</div></div></div>');
                                 $("#seriesHover").html('<div class="kuva">'+kuva+'</div><div class="genret">'+genretTeksti+'</div><div class="muut"><div>Year: '+year+'</div><div>Rating: '+rating+'</div><div>Author: '+author+'</div><div>Artist: '+artist+'</div></div>');  

                                 $(".kuva, .genret").css({float:"left", display:"inline-block"}); 
                                 $(".genret").css({width:(parentWidth-131),padding:"0 5px"}); 
                                 $(".muut").css({width:(parentWidth-131),padding:"5px 5px",float:"left"}); 

                                 $(linkki).css({color:"#282828"});
                             }
                         });
                     } else {
                         $("#seriesHover").html("<div>"+kuvaDivi.html()+"</div>");
                     }


                     isFirefox = navigator.userAgent.toLowerCase().indexOf('firefox') > -1;
                     
                     if($(this).offset().top + 200 > ($(window).height() + $(window).scrollTop()) && isFirefox) {
                         $("#seriesHover").css({position:"absolute", left:relX,top:(relY-($('#seriesHover').height() + $(elementti).height())),background:"#ccc",width:parentWidth,opacity:0.9}); 
                     } else {
                         $("#seriesHover").css({position:"absolute", left:relX,top:relY,background:"#ccc",width:parentWidth,opacity:0.9});    
                     }


                     $(".kuva, .genret").css({float:"left", display:"inline-block"}); 
                     $(".genret").css({width:(parentWidth-131),padding:"0 5px"}); 
                     $("#seriesHover").show();
                  }
 
            });

            $(".alt tr").mouseleave(function(e){
                e.stopPropagation();
                $("#seriesHover").html("");
                $("#seriesHover").hide();
            });
        }
      
        
    }
    
    
});