🏠 Home 

GreasyFork script list beautifier

Reformat script list on GreasyFork


Install this script?
// ==UserScript==
// @name       GreasyFork script list beautifier
// @namespace  http://websocket.bplaced.net
// @version    1.4.1
// @description  Reformat script list on GreasyFork
// @match      https://greasyfork.org/users/*
// @match      https://greasyfork.org/forum*
// @match      https://greasyfork.org/scripts*
// @match      https://greasyfork.org/*/users/*
// @match      https://greasyfork.org/*/scripts*
// @copyright  2014, Thomas Theiner
// ==/UserScript==
window.addEventListener('load', function() {
if(unsafeWindow.jQuery) {
$ = unsafeWindow.jQuery;
$('section .script-list, body > .script-list').each(function() {
$table = $('<table border="0" width="84%"></table>');
$tbody = $('<tbody></tbody>');
$thead = $('<thead></thead>');
$theadtr = $('<tr></tr>');
$th = $('<td style="font-weight: bold" width="60%"></td>');
$th.html('<span class="title" style="cursor: pointer;">Title</span>');
$theadtr.append($th);
$th = $('<td style="font-weight: bold" width="8%"></td>');
$th.html('Author');
$theadtr.append($th);
$th = $('<td style="font-weight: bold" width="8%"></td>');
$th.html('Daily');
$theadtr.append($th);
$th = $('<td style="font-weight: bold" width="8%"></td>');
$th.html('<span class="total" style="cursor: pointer;">Total</span>');
$theadtr.append($th);
$th = $('<td style="font-weight: bold" width="8%"></td>');
$th.html('Fans');
$theadtr.append($th);
$th = $('<td style="font-weight: bold" width="8%"></td>');
$th.html('Created');
$theadtr.append($th);
$th = $('<td style="font-weight: bold" width="8%"></td>');
$th.html('Updated');
$theadtr.append($th);
$tbody.append($theadtr);
$(this).find('li').each(function() {
var $scriptlink = $(this).find('article h2 a');
var $scriptdesc = $(this).find('article h2 .description');
$tr = $('<tr></tr>');
$td = $('<td></td>');
$td.append($scriptlink);
$td.append('<br/>');
$td.append($scriptdesc);
$tr.append($td);
$(this).find('article dl dd').each(function() {
$td = $('<td></td>');
$td.html($(this).html());
$tr.append($td);
});
$tbody.append($tr);
});
$table.append($tbody);
$(this).replaceWith($table);
//$(this).hide();
});
$('.total').click(function() {
// sort total column
var $rowArray = [];
var totalArray = [];
var $tbody = $(this).parent().parent().parent();
$tbody.find('tr').each(function(index) {
if(index > 0) {
$rowArray.push($(this));
var total = parseInt($(this).find('td').eq(3).text(), 10);
totalArray.push(total);
}
});
for(i=0; i<totalArray.length-1; i++) {
for(j=i+1; j<totalArray.length; j++) {
if(totalArray[i] < totalArray[j]) {
var help = totalArray[i];
var helpTR = $rowArray[i];
totalArray[i] = totalArray[j];
$rowArray[i] = $rowArray[j];
totalArray[j] = help;
$rowArray[j] = helpTR;
}
}
}
for(i=0; i<totalArray.length; i++) {
$tbody.append($rowArray[i]);
}
});
$('.title').click(function() {
// sort title column
var $rowArray = [];
var titleArray = [];
var $tbody = $(this).parent().parent().parent();
$tbody.find('tr').each(function(index) {
if(index > 0) {
$rowArray.push($(this));
var title = $(this).find('td').eq(0).text();
titleArray.push(title);
}
});
for(i=0; i<titleArray.length-1; i++) {
for(j=i+1; j<titleArray.length; j++) {
if(titleArray[i] > titleArray[j]) {
var help = titleArray[i];
var helpTR = $rowArray[i];
titleArray[i] = titleArray[j];
$rowArray[i] = $rowArray[j];
titleArray[j] = help;
$rowArray[j] = helpTR;
}
}
}
for(i=0; i<titleArray.length; i++) {
$tbody.append($rowArray[i]);
}
});
}
}, false);