// ==UserScript==
// @name KAT - Sort Translators
// @namespace SortTranslators
// @version 2.02
// @description Groups translators by language (only sorts by default)
// @include https://*kat.cr/people/translators/
// @downloadURL https://update.greasyfork.icu/scripts/3273/KAT%20-%20Sort%20Translators.user.js
// @updateURL https://update.greasyfork.icu/scripts/3273/KAT%20-%20Sort%20Translators.meta.js
// ==/UserScript==
var info = [];
$('.firstColl:first > ul > li').each(function()
{
var all = $(this).html();
var span = $(this).children("span");
$(span).remove();
var language = $(this).html();
info.push({"html":all, "lang":language});
$(this).remove();
});
var columnLimit = info.length;
var current = 0;
$('.secondColl:first > ul > li').each(function()
{
var all = $(this).html();
var span = $(this).children("span");
$(span).remove();
var language = $(this).html();
info.push({"html":all, "lang":language});
$(this).remove();
});
info.sort(function(a, b) {
return a.lang.localeCompare(b.lang);;
});
for (i = 0; i < info.length; i++)
{
if (current < columnLimit) { $('.firstColl:first > ul').append('
' + info[i].html + '
'); }
else { $('.secondColl:first > ul').append('
' + info[i].html + '
'); }
current++;
}
info = [];
$('.thirdColl:first > ul > li').each(function()
{
var all = $(this).html();
var span = $(this).children("span");
$(span).remove();
var language = $(this).html();
info.push({"html":all, "lang":language});
$(this).remove();
});
info.sort(function(a, b) {
return a.lang.localeCompare(b.lang);;
});
for (i = 0; i < info.length; i++)
{
$('.thirdColl:first > ul').append('
' + info[i].html + '
');
}
var langs = [];
var items = $("div[class$='Coll']:lt(2) > ul > li").contents().filter(function() { return this.nodeType === 3;});
items = items.map(function() {
var text = $(this).text();
text = text.substring(2, text.length - 1);
return text;
});
function unique(array) {
return $.grep(array, function(el, index) {
return index === $.inArray(el, array);
});
}
items = unique(items);
items.sort();
$.map(items, function(val)
{
langs[val] = [];
});
langs["All"] = [];
var option = '';
$("div[class$='Coll']:lt(2) > ul > li").each(function()
{
var html = '