NOTICE: By continued use of this site you understand and agree to the binding Terms of Service and Privacy Policy.
// ==UserScript== // @name HachedeHistorial // @namespace hachedeHistorial // @description Permite ordenar el historial // @icon https://hachede.me/favicon.ico?lv=2.2 // @include https://hachede.me/* // @include http://hachede.me/* // @version 2 // @author WirnCael // @grant none // @require http://code.jquery.com/jquery-1.11.2.min.js // @priority 1 // @run-at document-end // @downloadURL https://openuserjs.org/install/WirnCael/HachedeHistorial.user.js // ==/UserScript== var j = jQuery.noConflict(true); // Variables var tipoHistorial = { Activos: 0, Inactivos: 1 } var tipoHistorialActual = 0; var ordenHistorialActualTipo = 0; // 0 down, 1 up var ordenHistorialActualNombre ="Actualización"; var arrayTorrentsActivos = []; var arrayTorrentsInactivos = []; var arrayTorrentsActivosOriginal = []; var arrayTorrentsInactivosOriginal = []; //Nuevas var screenWidth; var screenHeight; // Función principal j( document ).ready(function( $ ) { // Para el panel de usuario de HOME (debajo del avatar) j('#logged').parent().delegate('span', 'click', function(){ arrayTorrentsActivos = []; arrayTorrentsInactivos = []; ordenHistorialActualNombre ="Actualización"; fDetectaHistorial(); }); // Para la barra de navegacion j('#history_link').click(function(){ arrayTorrentsActivos = []; arrayTorrentsInactivos = []; ordenHistorialActualNombre ="Actualización"; fDetectaHistorial(); }); screenWidth = j( window ).width(); screenHeight = j( window ).height(); // NUEVO console.log("Window: " + screenWidth); console.log("Screen: " + heightScreen); }); // Funciones auxiliares //Espera a que aparezca la ventana del Historial function fDetectaHistorial(){ if (j('#overlay').find('.overlay_header:visible').length > 0) { fDetectaPestActiva(); } else{ setTimeout(function() { fDetectaHistorial(); }, 10); } } //Detecta la pestaña activa en el Historial function fDetectaPestActiva(){ j('a[href="#active_torrents').click(function(){ tipoHistorialActual = tipoHistorial.Activos; fOrdenarTorrents( "Inicio" ); }); j('a[href="#inactive_torrents').click(function(){ tipoHistorialActual = tipoHistorial.Inactivos; fOrdenarTorrents( "Inicio" ); }); if (j('a[href="#active_torrents').attr('class') == "current") { tipoHistorialActual = tipoHistorial.Activos; fGuardaHistorial(); } // HACE FALTA ESTA? Empieza siempre en activos? Se deja hasta prueba. if (j('a[href="#inactive_torrents').attr('class') == "current") { tipoHistorialActual = tipoHistorial.Inactivos; fGuardaHistorial(); } j('.subHeader:contains("' + ordenHistorialActualNombre + '")').append(" (↓ Desc.)"); j('.subHeader:contains("' + ordenHistorialActualNombre + '")').css({"background":"#F5A04C"}); } //Guarda el Historial function fGuardaHistorial(){ j('#overlay').find('tr.trRow:visible').each(function(){ if(tipoHistorialActual == tipoHistorial.Activos) arrayTorrentsActivos.push(this); else arrayTorrentsInactivos.push(this); }); j('#overlay').find('tr.trRow:hidden').each(function(){ if(tipoHistorialActual == tipoHistorial.Activos) arrayTorrentsInactivos.push(this); else arrayTorrentsActivos.push(this); }); arrayTorrentsActivosOriginal = arrayTorrentsActivos.slice(); arrayTorrentsInactivosOriginal = arrayTorrentsInactivos.slice(); fHistorialClickable(); } // Habilita la opcion de ordenar el Historial function fHistorialClickable(){ j('th.subHeader').css( 'cursor', 'pointer' ); j('th.subHeader').click(function(){ if(j(this).text() == "Activos") j(this).css( 'cursor', 'default' ); else fOrdenarTorrents( j(this).text() ); }); //NUEVO j('div.overlay_text').attr("style", "height: " + (screenHeight - 200) + "px; with: " + (screenWidth - 200) + "px;"); } // Ordena los torrents del Historial actualmente visibles en funcion del tipo de orden elegido. function fOrdenarTorrents( tipoOrden ){ var array; if (tipoHistorialActual == tipoHistorial.Activos) array = arrayTorrentsActivos; else array = arrayTorrentsInactivos; // Para quitar las flechas anteriores var separators = [" \\(\\↑ Asc\\.\\)"," \\(\\↓ Desc\\.\\)"]; tipoOrden = tipoOrden.split(new RegExp(separators.join('|'), 'g'))[0]; j('.subHeader:contains("' + ordenHistorialActualNombre + '")').html(j('.subHeader:contains("' + ordenHistorialActualNombre + '")').text().split(new RegExp(separators.join('|'), 'g'))[0]); j('.subHeader:contains("' + ordenHistorialActualNombre + '")').css({"background":"#E47600"}); if(tipoOrden.indexOf("Nombre del Torrent") >= 0){ if(ordenHistorialActualNombre == "Nombre del Torrent"){ fOrdenInversoHistorial(array); } else{ j('.subHeader:contains("' + tipoOrden + '")').append(" (↓ Desc.)"); ordenHistorialActualTipo = 0; array.sort(function(a, b){ return j(a).find('td.secondRow, td.firstRow').eq(0).text().toUpperCase().localeCompare(j(b).find('td.secondRow, td.firstRow').eq(0).text().toUpperCase()); }); } } else if(tipoOrden.indexOf("Tamaño") >= 0){ if(ordenHistorialActualNombre == "Tamaño"){ fOrdenInversoHistorial(array); } else{ j('.subHeader:contains("' + tipoOrden + '")').append(" (↓ Desc.)"); ordenHistorialActualTipo = 0; array.sort(function(a, b){ a = j( a ).find('td.secondRow, td.firstRow').eq(1).text(); b = j( b ).find('td.secondRow, td.firstRow').eq(1).text(); a = fCalculaTB(a); b = fCalculaTB(b); if ((b - a) === 0) return j(a).find('td.secondRow, td.firstRow').eq(0).text().toUpperCase().localeCompare(j(b).find('td.secondRow, td.firstRow').eq(0).text().toUpperCase()); else return b - a; }); } } else if(tipoOrden.indexOf("Seeders") >= 0){ if(ordenHistorialActualNombre == "Seeders"){ fOrdenInversoHistorial(array); } else{ j('.subHeader:contains("' + tipoOrden + '")').append(" (↓ Desc.)"); ordenHistorialActualTipo = 0; array.sort(function(a, b){ var aux = j( b ).find('td.secondRow, td.firstRow').eq(2).text() - j( a ).find('td.secondRow, td.firstRow').eq(2).text(); if(aux === 0) return j(a).find('td.secondRow, td.firstRow').eq(0).text().toUpperCase().localeCompare(j(b).find('td.secondRow, td.firstRow').eq(0).text().toUpperCase()); else return aux; }); } } else if(tipoOrden.indexOf("Leechers") >= 0){ if(ordenHistorialActualNombre == "Leechers"){ fOrdenInversoHistorial(array); } else{ j('.subHeader:contains("' + tipoOrden + '")').append(" (↓ Desc.)"); ordenHistorialActualTipo = 0; array.sort(function(a, b){ var aux = j( b ).find('td.secondRow, td.firstRow').eq(3).text() - j( a ).find('td.secondRow, td.firstRow').eq(3).text(); if(aux === 0) return j(a).find('td.secondRow, td.firstRow').eq(0).text().toUpperCase().localeCompare(j(b).find('td.secondRow, td.firstRow').eq(0).text().toUpperCase()); else return aux; }); } } else if(tipoOrden.indexOf("Descargado") >= 0){ if(ordenHistorialActualNombre == "Descargado"){ fOrdenInversoHistorial(array); } else{ j('.subHeader:contains("' + tipoOrden + '")').append(" (↓ Desc.)"); ordenHistorialActualTipo = 0; array.sort(function(a, b){ a = j( a ).find('td.secondRow, td.firstRow').eq(4).html().split("<br>")[0]; b = j( b ).find('td.secondRow, td.firstRow').eq(4).html().split("<br>")[0]; a = fCalculaTB(a); b = fCalculaTB(b); if ((b - a) == 0) return j(a).find('td.secondRow, td.firstRow').eq(0).text().toUpperCase().localeCompare(j(b).find('td.secondRow, td.firstRow').eq(0).text().toUpperCase()); else return b - a; }); } } else if(tipoOrden.indexOf("Subido") >= 0){ if(ordenHistorialActualNombre == "Subido"){ fOrdenInversoHistorial(array); } else{ j('.subHeader:contains("' + tipoOrden + '")').append(" (↓ Desc.)"); ordenHistorialActualTipo = 0; array.sort(function(a, b){ a = j( a ).find('td.secondRow, td.firstRow').eq(5).html().split("<br>")[0]; b = j( b ).find('td.secondRow, td.firstRow').eq(5).html().split("<br>")[0]; a = fCalculaTB(a); b = fCalculaTB(b); if ((b - a) == 0) return j(a).find('td.secondRow, td.firstRow').eq(0).text().toUpperCase().localeCompare(j(b).find('td.secondRow, td.firstRow').eq(0).text().toUpperCase()); else return b - a; }); } } else if(tipoOrden.indexOf("Ratio") >= 0){ if(ordenHistorialActualNombre == "Ratio"){ fOrdenInversoHistorial(array); } else{ j('.subHeader:contains("' + tipoOrden + '")').append(" (↓ Desc.)"); ordenHistorialActualTipo = 0; array.sort(function(a, b){ var aux = j( b ).find('td.secondRow, td.firstRow').eq(6).text() - j( a ).find('td.secondRow, td.firstRow').eq(6).text(); if(aux == 0) return j(a).find('td.secondRow, td.firstRow').eq(0).text().toUpperCase().localeCompare(j(b).find('td.secondRow, td.firstRow').eq(0).text().toUpperCase()); else return aux; }); } } else if(tipoOrden.indexOf("Announce (Tiempo Semilla)") >= 0){ if(ordenHistorialActualNombre == "Announce (Tiempo Semilla)"){ fOrdenInversoHistorial(array); } else{ j('.subHeader:contains("' + tipoOrden + '")').append(" (↓ Desc.)"); ordenHistorialActualTipo = 0; array.sort(function(a, b){ var aux = parseInt(j( b ).find('td.secondRow, td.firstRow').find('.small').text()) - parseInt(j( a ).find('td.secondRow, td.firstRow').find('.small').text()); if(aux == 0) return j(a).find('td.secondRow, td.firstRow').eq(0).text().toUpperCase().localeCompare(j(b).find('td.secondRow, td.firstRow').eq(0).text().toUpperCase()); else return aux; }); } } else if(tipoOrden.indexOf("Actualización") >= 0){ if(tipoHistorialActual == tipoHistorial.Activos) array = arrayTorrentsActivosOriginal.slice(); else array = arrayTorrentsInactivosOriginal.slice(); if(ordenHistorialActualNombre == "Actualización"){ if(ordenHistorialActualTipo === 0){ fOrdenInversoHistorial(array); } else{ j('.subHeader:contains("' + tipoOrden + '")').append(" (↓ Desc.)"); ordenHistorialActualTipo = 0; } } else{ j('.subHeader:contains("' + tipoOrden + '")').append(" (↓ Desc.)"); ordenHistorialActualTipo = 0; } } else if(tipoOrden.indexOf("Inicio") >= 0){ tipoOrden = "Actualización"; j('.subHeader:contains("' + tipoOrden + '")').append(" (↓ Desc.)"); ordenHistorialActualTipo = 0; if(tipoHistorialActual == tipoHistorial.Activos) array = arrayTorrentsActivosOriginal.slice(); else array = arrayTorrentsInactivosOriginal.slice(); } j('.subHeader:contains("' + tipoOrden + '")').css({"background":"#F5A04C"}); ordenHistorialActualNombre = tipoOrden; fImprimirHistorial(array); } // Imprime el Historial visible function fImprimirHistorial(array){ var color = 0; j('#overlay').find('tr.trRow:visible').remove(); for(var i = 0; i < array.length; i++){ if(color == 0){ j(array[i]).find('td.secondRow, td.firstRow').each(function(){ j(this).attr("class", "secondRow"); }); color = 1; } else{ j(array[i]).find('td.secondRow, td.firstRow').each(function(){ j(this).attr("class", "firstRow"); }); color = 0; } j('#overlay').find('tr:visible').parent().append(array[i]); } } // Calcula el espacio en TB function fCalculaTB(elem){ if(elem.indexOf("KB") != -1) elem = parseFloat(elem) / 1024 / 1024 / 1024; else if(elem.search("MB") != -1) elem = parseFloat(elem) / 1024 / 1024; else if (elem.search("GB") != -1) elem = parseFloat(elem) / 1024; else elem = parseFloat(elem) return elem; } // Invierte el orden y la flecha en el Historial function fOrdenInversoHistorial(array){ if(ordenHistorialActualTipo == 0){ j('.subHeader:contains("' + ordenHistorialActualNombre + '")').append(" (↑ Asc.)"); ordenHistorialActualTipo = 1; } else{ j('.subHeader:contains("' + ordenHistorialActualNombre + '")').append(" (↓ Desc.)"); ordenHistorialActualTipo = 0; } j('.subHeader:contains("' + ordenHistorialActualNombre + '")').css({"background":"#F5A04C"}); array.reverse(); }