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

// ==UserScript==
// @name        Mangaupdates - Custom releases page
// @version     2.22
// @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 { 
                if(typeof $(el).children().attr('style') == 'undefined') {
                   $(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;
        tyyli = '';
        if (novellit[i].indexOf("background-color:") >= 0) {
            tyyli = novellit[i].substr(novellit[i].indexOf("background-color:")).split('"')[0]+';';
        }
        
        if(j % 2 === 0) {
            sisusNovellit += "<tr style='padding: 3px;"+tyyli+"'>"+novellit[i]+"</tr>";        
        }else {
            if(tyyli == '') {
               sisusNovellit += "<tr style='background: #F0F3F7; padding: 3px;'>"+novellit[i]+"</tr>";       
            } else {
               sisusNovellit += "<tr style='padding: 3px;"+tyyli+"'>"+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();
            });
        }
      
        
    }
    
    
});