Sort alphabetically

Sorts torrents alphabetically as an option

当前为 2015-05-14 提交的版本,查看 最新版本

  1. // ==UserScript==
  2. // @name Sort alphabetically
  3. // @namespace SexyWolfie
  4. // @description Sorts torrents alphabetically as an option
  5. // @include *kickass.so/new/
  6. // @include *kickass.so/movies/
  7. // @include *kickass.so/games/
  8. // @include *kickass.so/tv/
  9. // @include *kickass.so/books/
  10. // @include *kickass.so/applications/
  11. // @include *kickass.so/music/
  12. // @include *kickass.so/anime/
  13. // @include *kickass.so/other/
  14. // @include *kickass.so/xxx/
  15. // @include *kickass.to/new/
  16. // @include *kickass.to/movies/
  17. // @include *kickass.to/games/
  18. // @include *kickass.to/tv/
  19. // @include *kickass.to/books/
  20. // @include *kickass.to/applications/
  21. // @include *kickass.to/music/
  22. // @include *kickass.to/anime/
  23. // @include *kickass.to/other/
  24. // @include *kickass.to/xxx/
  25. // @include *kat.cr/new/
  26. // @include *kat.cr/movies/
  27. // @include *kat.cr/games/
  28. // @include *kat.cr/tv/
  29. // @include *kat.cr/books/
  30. // @include *kat.cr/applications/
  31. // @include *kat.cr/music/
  32. // @include *kat.cr/anime/
  33. // @include *kat.cr/other/
  34. // @include *kat.cr/xxx/
  35. // @version 1.1
  36. // @grant none
  37. // ==/UserScript==
  38.  
  39. var rows = [];
  40. $('.data').before('<div class="buttonsline"><select disabled id="field-select" style="letter-spacing: 0px; width: 160px !important;"><option value="title">Sort by Torrent Name</option></select><select id="field-sort" style="letter-spacing: 0px; width: 150px !important;"><option value="asc">Ascending</option><option value="desc">Descending</option></select> <button class="siteButton bigButton" id="sortTable"><span>Sort</span></button></div>');
  41. $(document).delegate('#sortTable', 'click', function() {
  42. var sortName = $('#field-select').val();
  43. var sortType = ($('#field-sort').val()=="asc");
  44. sortTable(sortName, sortType);
  45. });
  46. $('.data tr[id^="torrent_"]').each(function() {
  47. var title = $('.cellMainLink', $(this)).text();
  48. var html = $(this).html();
  49. rows.push({"title":title, "html":html});
  50. });
  51. function sortByKey(array, key) {
  52. return array.sort(function(a, b) {
  53. var x = a[key];
  54. var y = b[key];
  55. if (typeof x == "string") {
  56. x = x.toLowerCase();
  57. y = y.toLowerCase();
  58. }
  59. return ((x < y) ? -1 : ((x > y) ? 1 : 0));
  60. });
  61. }
  62. function sortTable(sortName, sortType) {
  63. sortByKey(rows, sortName);
  64. if (!sortType) { // Not sortType / is false
  65. rows.reverse();
  66. }
  67. $('.data tr[id^="torrent_"]').remove();
  68. for (var i=0;i<rows.length;i++) {
  69. $('.data').append('<tr id="torrent_'+i+'">'+rows[i].html+'</tr>');
  70. }
  71.  
  72. }