Kolter / Demigrant Script

// ==UserScript==
// @name         Demigrant Script
// @namespace    https://openuserjs.org/scripts/Kolter/Demigrant_Script/
// @version      0.1.2
// @description  mierdoso y demigrante sucedáneo de shurscript
// @author       cerdosaurio, Kolter
// @include      http://www.forocoches.com*
// @include      http://forocoches.com*
// @grant           GM_log
// @grant           GM_getValue
// @grant           GM_setValue
// @grant           GM_deleteValue
// @grant           GM_xmlhttpRequest
// @grant           GM_registerMenuCommand
// @grant           GM_addStyle
// @grant           GM_getResourceText
// @grant           GM_getResourceURL
// @grant           GM_getMetadata
// @require      http://code.jquery.com/jquery-latest.js
// @require http://plataformalol.tk/resources/jquery.cookie.js
// @resource 	fjallaone http://fonts.googleapis.com/css?family=Fjalla+One
// ==/UserScript==

 var newCSS = GM_getResourceText ("fjallaone");
GM_addStyle (newCSS);
var url = null;
var hilo = null;
var pagina = 1;
var botonNuevosPosts = null;
var numNuevosPosts = 0;
var hrefOp = null;
var op = null;
var user= '';
 
function pintaPostsOp() {
    if(hrefOp) {
        $("a.bigusername").each(function() {
            if($(this).attr("href") == hrefOp) {
                $(this).parents("table").first().css("border", "solid 2px #f20").css("border-top-width", "3px");
            }
        });
    }
    if(op) {
        $("td.alt2").each(function() {
            if($(this).attr("style") == "border:1px inset") {
                var div = $(this).children().first();
                if(div.is("div") && $.trim(div.text()) == "Originalmente Escrito por " + op)
                    $(this).css("border", "solid 2px #f20").css("border-top-width", "3px");
            }
        });
    }
}
 
function procesaPrimeraPagina(html) {
    var enlace = $("a.bigusername", html).first();
    hrefOp = enlace.attr("href");
    op = enlace.text();
    pintaPostsOp();
}
 
function despliegaNuevosPosts() {
    $(".postInvisible").show();
    botonNuevosPosts.remove();
    botonNuevosPosts = null;
        numNuevosPosts = 0;
    if(document.title.charAt(0) == "*")
        document.title = document.title.substr(2);
    pintaPostsOp();
}
 
function buscaNuevosPosts() {
    $.get(document.URL, function(data) {
        var html = $.parseHTML(data);
        var nuevos = [];
        $("table.tborder[id^=post]", html).each(function() {
            if(!$("table#" + $(this).attr("id")).length) {
                numNuevosPosts++;
                nuevos.push($(this).parent().parent().parent().addClass("postInvisible").hide());
            }
        });
        if(numNuevosPosts) {
            if(document.title.charAt(0) != "*")
                    document.title = "* " + document.title;
            var mensajeNuevos = "Hay " + numNuevosPosts + (numNuevosPosts == 1 ? " post nuevo" : " posts nuevos");
            if(!botonNuevosPosts) {
                botonNuevosPosts = $("<div></div>").attr("style", "cursor:pointer;color:#fff;font-weight:bold;font-size:18px;background-color:#2b4;margin:16px 0;padding:8px;text-align:center");
                    $("div#posts").append(botonNuevosPosts);
                botonNuevosPosts.click(despliegaNuevosPosts);
            }
            botonNuevosPosts.text(mensajeNuevos);
            $("div#posts").append(nuevos);
        }
        if($(".pagenav a[href$='&page=" + (pagina + 1) + "']", html).length) {
            if(document.title.charAt(0) != "*")
                    document.title = "* " + document.title;
            botonNuevaPagina = $("<div></div>").attr("style", "cursor:pointer;color:#fff;font-weight:bold;font-size:18px;background-color:#2b4;margin:16px 0;padding:8px;text-align:center").
                text("Hay una nueva página")
            if(botonNuevosPosts)
                    botonNuevaPagina.addClass("postInvisible").hide();
            botonNuevaPagina.click(function() {
                window.location.href = url + "?t=" + hilo + "&page=" + (pagina + 1);
            });
            $("div#posts").append(botonNuevaPagina);
        }
        else
                setTimeout(buscaNuevosPosts, 60000);
    });
}
function obtenerCitas(data){
    
    // Dependiendo de los resultados la búsqueda del autor de la mención cambia por eso Si no hay paginación se añaden -2 al resultado y si hay paginación pero no todas las páginas se añaden -2
    var n = data.indexOf('P&aacute;g 1 de');
    var n2 = data.indexOf('&Uacute;ltimo <strong>&raquo;</strong>');
     var limit=0;
  		var tempDom = $('<output>').append($.parseHTML(data));
        var limit2 = 0;
        var limit3 = 0;
          var appContainer3 = $('.inlineimg', tempDom).each(function(){
              if (limit3<24){
              if (limit3==2){
                tema0=$(this).parent('div').children('a'); 
              }
               if (limit3==4){
               tema1=$(this).parent('div').children('a'); 
              }
               if (limit3==6){
                 tema2= $(this).parent('div').children('a'); 
              }
               if (limit3==8){
                tema3= $(this).parent('div').children('a'); 
              }
               if (limit3==10){
                tema4=$(this).parent('div').children('a'); 
              }
                    if (limit3==12){
                tema4=$(this).parent('div').children('a'); 
              }
                    if (limit3==14){
                tema5=$(this).parent('div').children('a'); 
              }
                    if (limit3==16){
                tema6=$(this).parent('div').children('a'); 
              }
                    if (limit3==18){
                tema7=$(this).parent('div').children('a'); 
              }
                    if (limit3==20){
                tema8=$(this).parent('div').children('a'); 
              }
                if (limit3==22){
                tema9=$(this).parent('div').children('a'); 
              }
              ++limit3;
              }
                     });
var  limitador = 7;
      if (n2==-1){
            limitador=6;
        }
    if (n==-1){
      limitador=5;
    }
         var appContainer2 = $('.smallfont', tempDom).each(function(){
            if (limit2>(limitador-1) && limit2<45){
                if (limit2==limitador){
                 autor0 = $(this).find('a');
            }                
                if(limit2==4+limitador){
                 autor1 = $(this).find('a');
            }
                     if(limit2==8+limitador){
                 autor2 = $(this).find('a');
            }
                     if(limit2==12+limitador){
                autor3 = $(this).find('a');
            }
                     if(limit2==16+limitador){
                autor4 = $(this).find('a');
            }
                        if(limit2==20+limitador){
                autor5 = $(this).find('a');
            }
                        if(limit2==24+limitador){
                autor6 = $(this).find('a');
            }
                        if(limit2==28+limitador){
                autor7 = $(this).find('a');
            }
                        if(limit2==32+limitador){
                autor8 = $(this).find('a');
            }
                        if(limit2==36+limitador){
                autor9 = $(this).find('a');
            }
          
            
            } ++limit2;
        });
           arrayIDs=[];

        var appContainer = $('em', tempDom).each(function(){
            if (limit<10){
                switch (limit){
                    case 0:
                        autor=autor0;
                        tema=tema0;
                        cita="cita0";
                        break;
                     case 1:
                        autor=autor1;
                         tema=tema1;
                        cita="cita1";
                        break;
                    case 2:
                        autor=autor2;
                         tema=tema2;
                        cita="cita2";
                        break;
                    case 3:
                        autor=autor3;
                         tema=tema3;
                        cita="cita3";
                        break;
                    case 4:
                        autor=autor4;
                         tema=tema4;
                        cita="cita4";
                        break;  
                    case 5:
                        autor=autor5;
                         tema=tema5;
                        cita="cita5";
                        break;   
                    case 6:
                        autor=autor6;
                         tema=tema6;
                        cita="cita6";
                        break;   
                       case 7:
                        autor=autor7;
                         tema=tema7;
                        cita="cita7";
                        break;   
                    case 8:
                        autor=autor8;
                         tema=tema8;
                        cita="cita8";
                        break;   
                    case 9:
                        autor=autor9;
                         tema=tema9;
                        cita="cita9";
                        break;  
                }  
           var str = "http://www.forocoches.com/foro/"+$(this).children('a').attr('href');
           var res = str.match(/\d{9,}/g);
            arrayIDs.push(res[0]);
           href = "http://www.forocoches.com/foro/"+$(this).children('a').attr('href');
         $(this).children('a').remove();
         usuariohref="http://www.forocoches.com/foro/"+autor.attr('href');  
                $("#citasInterior").append("<div id='W"+cita+"'  class='citas' style='background-color:#EEE;border-radius:5px;padding:5px;'> <span style='font-size:1.2em'>Mencionado por: <span style='color:red'><a href='"+ usuariohref+"'>"+autor.html()+"</a></span> en <a target='_blank' href='"+href+"'>"+tema.html()+"</a></span><br><div id='"+cita+"'>"+$(this).html()+"</div><br><a target='_blank' href='"+href+"' style='padding:5px;background-color:#F00;color:#FFF;max-width:30%;border-radius:5px;'>Ir al hilo</a></div></div><br>");
                       
                   if ($.cookie('Citas')){
                    var storedAry = JSON.parse($.cookie('Citas'+user));
	 if (res[0]!=storedAry[limit]){
                      $("#W"+cita).css({'border':'1px solid #F00'});
                }
            }else{
              
            }
               
                            ++limit;  
            }
        });
    if ($.cookie('Citas'+user)){
     var storedAry = JSON.parse($.cookie('Citas'+user));
  
    result = 0;
  
    for (var i;i<storedAry.length;i++){
        if (storedAry[i]!=arrayIDs[i]){
            ++result;
        }   
   
    }
    }else{
        result = 10;
    }

    $("#numCitas").html(result+" cita/s nuevas");
    if (result!=0){
      //  ("#numCitas").css('color','#F00');
       
    }
  $.cookie('Citas'+user, JSON.stringify(arrayIDs));
}
 
$(document).ready(function() {
    var array=0;
    $('strong').each(function(){
        if (array===1){
         var pepe = $(this);
            pepe.parent('div').append("<div id='cajaCitas'><a href='#' id='abrirCitas'>Citas</a><a href='#' id='actualizarCitas' style='float:right'>Actualizar citas</a></div>");
             $("#abrirCitas").after(" <span id='numCitas'></span>");
         user = $(this).children('a').html();   
        }
        array++;
        
    })
    $("#cajaCitas").append("<div id='citas' style='z-index:100;position:absolute;overflow:scroll;max-height:75%;text-overflow:hidden;left:10%;top:10%;padding:5px;border:1px solid #000;width:80%;background-color:#FFF;display:none'><a href='#' style='float:right' id='cerrarCitas'>Cerrar</a><div id='citasInt' style='font-size:1.2em;position:relative; font-family: Fjalla One, sans-serif;'><h1>Menciones</h1><div id='citasInterior'></div></div></div>");
    $.get("search.php?do=process&query="+user+"&titleonly=0&showposts=1",function(data){
      obtenerCitas(data);
    });
    $("#actualizarCitas").click(function (e){
          $('body').append('<div id="overlay" style="top:0;left:0;width:100%;height:100%;position:fixed;background-color:#000;opacity:0.8;z-index:50;"></div>');
        $("<div id=\"actualizando\" style=\"position:absolute;z-index:500;top:25%;left:35%;font-size:3em;color:#FFF;color:#000;padding:15px;background-color:#FFF;font-family: Fjalla One, sans-serif;\">Actualizando</div>").appendTo('body');
        $.get("search.php?do=process&query="+user+"&titleonly=0&showposts=1",function(data){
         $("#citasInterior").html('');
      obtenerCitas(data);
      $("#overlay").remove();
            $('#actualizando').remove();
    });  });
    $("#abrirCitas").click(function(e){
        e.preventDefault();
        $("#citas").show();  
        $('body').append('<div id="overlay" style="top:0;left:0;width:100%;height:100%;position:fixed;background-color:#000;opacity:0.8;z-index:50;"></div>');
    })
     $("#cerrarCitas").click(function(e){
         e.preventDefault();
        $("#citas").hide(); 
         $("#overlay").remove();
    })
     $("#Wcita0").click(function(e){
         e.preventDefault();
     alert('hola');
     })
     $("#overlay").click(function(e){
          e.preventDefault();
        $("#citas").hide(); 
         $("#overlay").remove();
     })
     
     //Link última plataforma League of legends
       $.get("search.php?do=process&query=Plataforma+League+of+Legends&titleonly=1&showposts=1",function(data){
        		var tempDom = $('<output>').append($.parseHTML(data));
                     var limit3=0;
             var appContainer3 = $('.inlineimg', tempDom).each(function(){
              if (limit3<24){
              if (limit3==2){
                tema0=$(this).parent('div').children('a'); 
              }
              }limit3++;
    });
     
           href = "http://forocoches.com/foro/"+tema0.attr('href');
                 $('body').find('.vbmenu_control').first().after("<td class='vbmenu_control'><a href='"+href+"'>Plataforma League of legends</a></td>");
                 
      });
     
     
     //////////////////////
    var trozosURL = document.URL.split("?", 2);
    if(trozosURL.length == 2 && (trozosURL[0] == "http://www.forocoches.com/foro/showthread.php" || trozosURL[0] == "http://forocoches.com/foro/showthread.php")) {
        url = trozosURL[0];
        var trozosGET = trozosURL[1].split("&");
        var varsGET = {};
        for(var indice in trozosGET) {
            var varGET = trozosGET[indice].split("=");
            if(varGET.length == 2)
                varsGET[varGET[0]] = varGET[1];
        }
        if(varsGET["t"] !== undefined)
            hilo = varsGET["t"];
        if(varsGET["page"] !== undefined)
            pagina = Number(varsGET["page"]);
        if(pagina == 1)
            procesaPrimeraPagina(document);
        else
            $.get("http://www.forocoches.com/foro/showthread.php?t=" + hilo, function(data) {
                procesaPrimeraPagina($.parseHTML(data));
            });
        if(!$(".pagenav a[href$='&page=" + (pagina + 1) + "']").length)
                    setTimeout(buscaNuevosPosts, 120000);
    }
});