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.

Verze ze dne 23. 10. 2016. Zobrazit nejnovější verzi.

// ==UserScript==
// @name        Mangaupdates - Custom releases page
// @version     2.2
// @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>");
                     }


                     if($(this).offset().top + 200 > ($(window).height() + $(window).scrollTop())) {
                         $("#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();
            });
        }
      
        
    }
    
    
});