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 提交的版本,檢視 最新版本

您需要先安裝使用者腳本管理器擴展,如 TampermonkeyGreasemonkeyViolentmonkey 之後才能安裝該腳本。

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

您需要先安裝使用者腳本管理器擴充功能,如 TampermonkeyViolentmonkey 後才能安裝該腳本。

您需要先安裝使用者腳本管理器擴充功能,如 TampermonkeyUserscripts 後才能安裝該腳本。

你需要先安裝一款使用者腳本管理器擴展,比如 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();
            });
        }
      
        
    }
    
    
});