Sort alphabetically

Sorts torrents alphabetically as an option

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

  1. // ==UserScript==
  2. // @name Sort alphabetically
  3. // @namespace PXgamer
  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. // @include *kat.cr/usearch/*
  36. // @version 1.2
  37. // @grant none
  38. // ==/UserScript==
  39.  
  40. var rows = [];
  41. $('.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>');
  42. $(document).delegate('#sortTable', 'click', function() {
  43. var sortName = $('#field-select').val();
  44. var sortType = ($('#field-sort').val()=="asc");
  45. sortTable(sortName, sortType);
  46. });
  47. $('.data tr[id^="torrent_"]').each(function() {
  48. var title = $('.cellMainLink', $(this)).text();
  49. var html = $(this).html();
  50. rows.push({"title":title, "html":html});
  51. });
  52. function sortByKey(array, key) {
  53. return array.sort(function(a, b) {
  54. var x = a[key];
  55. var y = b[key];
  56. if (typeof x == "string") {
  57. x = x.toLowerCase();
  58. y = y.toLowerCase();
  59. }
  60. return ((x < y) ? -1 : ((x > y) ? 1 : 0));
  61. });
  62. }
  63. function sortTable(sortName, sortType) {
  64. sortByKey(rows, sortName);
  65. if (!sortType) { // Not sortType / is false
  66. rows.reverse();
  67. }
  68. $('.data tr[id^="torrent_"]').remove();
  69. for (var i=0;i<rows.length;i++) {
  70. $('.data').append('<tr id="torrent_'+i+'">'+rows[i].html+'</tr>');
  71. }
  72.  
  73. }