// ==UserScript== // @name Filter Ideabox // @namespace pxgamer // @version 0.3 // @description Sort ideabox ideas by different methods // @author pxgamer // @include *kat.cr/ideabox/* // @grant none // @downloadURL https://update.greasyfork.icu/scripts/19995/Filter%20Ideabox.user.js // @updateURL https://update.greasyfork.icu/scripts/19995/Filter%20Ideabox.meta.js // ==/UserScript== /*jshint multistr: true */ (function() { 'use strict'; var rows = []; $('.buttonsline.floatleft').append(' '); $('.ideaBox').each(function(){ var html = $(this).html(); var title = $('.ideaBoxBody h3 a', $(this)).text(); var age = $('.ideaBoxBody div.lightgrey:last', $(this)).html().split(' ')[6].trim(); var views = parseInt($('.ideaBoxBody div.lightgrey:last', $(this)).html().split(' ')[2].split(' views')[0], 10); rows.push({"title":title,"age":age,"views":views,"html":html}); }); console.log(rows); $('#sortIdeas').on('click', function() { var ideaSortType = $('#sortIdeas-select').val(); switch (ideaSortType) { case 'all': $('div.ideaBox').show(); break; case 'az': // Sort alphabetically (A-Z) $('div.ideaBox').show(); sortIdeas('title', 'desc'); break; case 'no': // Sort by age (Newest to Oldest) $('div.ideaBox').show(); sortIdeas('age', 'desc'); break; case 'views': // Sort by views (High to Low) $('div.ideaBox').show(); sortIdeas('views', 'desc'); break; default: $('div.ideaBox').show(); break; } }); function sortByKey(array, key) { return array.sort(function(a, b) { var x = a[key]; var y = b[key]; if (typeof x == "string") { x = x.toLowerCase(); y = y.toLowerCase(); } return ((x < y) ? -1 : ((x > y) ? 1 : 0)); }); } function sortIdeas(sortName, sortType) { sortByKey(rows, sortName); if (sortName !== 'views') { rows.reverse(); } $('div.ideaBox').remove(); for (var i=0;i'+rows[i].html+''); } } })();