PTH Non-Jam Top 10

Hide torrents with jam.band on the "Top 10"

  1. // ==UserScript==
  2. // @name PTH Non-Jam Top 10
  3. // @version 0.5
  4. // @description Hide torrents with jam.band on the "Top 10"
  5. // @author Chameleon
  6. // @include http*://redacted.ch/*
  7. // @include http*://apollo.rip/*
  8. // @grant none
  9. // @namespace https://gf.qytechs.cn/users/87476
  10. // ==/UserScript==
  11.  
  12. (function() {
  13. 'use strict';
  14.  
  15. if(window.location.href.indexOf('threadid=3392') != -1 && window.location.href.indexOf('redacted.ch') != -1)
  16. showSettings();
  17. if(window.location.href.indexOf('threadid=4281') != -1 && window.location.href.indexOf('apollo.rip') != -1)
  18. showSettings();
  19.  
  20. document.getElementById('nav_top10').getElementsByTagName('a')[0].href="/top10.php?type=torrents&limit=100&nonjam=true";
  21. if(window.location.href.indexOf("/top10.php?type=torrents&limit=100&nonjam=true") != -1)
  22. filterTop100();
  23. })();
  24.  
  25. function filterTop100()
  26. {
  27. document.getElementsByTagName('h2')[0].innerHTML = 'Top 10 Torrents';
  28. var h3s = document.getElementsByTagName('h3');
  29. for(var i=0; i<h3s.length; i++)
  30. {
  31. h3s[i].innerHTML = h3s[i].innerHTML.replace(/100/, "10");
  32. }
  33.  
  34. var settings = getSettings();
  35. var tables = document.getElementsByClassName('torrent_table');
  36. for(var i=0; i<tables.length; i++)
  37. {
  38. var count=0;
  39. var trs=tables[i].getElementsByTagName('tr');
  40. for(var j=1; j<trs.length; j++)
  41. {
  42. var tags=trs[j].getElementsByClassName('tags')[0];
  43. var hasTag=false;
  44. for(var k=0; k<settings.blacklist.length; k++)
  45. {
  46. if(tags.innerHTML.indexOf(settings.blacklist[k]) != -1 || count >= 10)
  47. {
  48. trs[j].style.display='none';
  49. hasTag=true;
  50. break;
  51. }
  52. }
  53. var artist=trs[j].getElementsByTagName('a')[1].textContent;
  54. for(var k=0; k<settings.artists.length; k++)
  55. {
  56. if(artist === settings.artists[k] || count >= 10)
  57. {
  58. trs[j].style.display='none';
  59. hasTag=true;
  60. break;
  61. }
  62. }
  63. if(!hasTag)
  64. count++;
  65. }
  66. }
  67. }
  68.  
  69. function showSettings(message)
  70. {
  71. var div=document.getElementById('ChameleonSettings');
  72. if(!div)
  73. {
  74. var before = document.getElementsByClassName('forum_post')[0];
  75. div = document.createElement('div');
  76. div.setAttribute('id', 'ChameleonSettings');
  77. before.parentNode.insertBefore(div, before);
  78. div.setAttribute('style', 'width: 100%; text-align: center; padding-bottom: 10px;');
  79. div.setAttribute('class', 'box');
  80. }
  81. div.innerHTML = '<h2>Non-Jam Top 10 Settings</h2><br />';
  82. var settings = getSettings();
  83.  
  84. var labelStyle = '';
  85.  
  86. var label = document.createElement('span');
  87. label.setAttribute('style', labelStyle+' margin-left: 10px;');
  88. label.innerHTML = 'Ignore Tags: ';
  89. div.appendChild(label);
  90. var input=document.createElement('input');
  91. input.setAttribute('style', 'width: 20em;');
  92. input.placeholder='Ignore torrents with these tags';
  93. input.value = settings.blacklist ? settings.blacklist.join(', '):'';
  94. div.appendChild(input);
  95. input.addEventListener('change', changeSettings.bind(undefined, div), false);
  96.  
  97. div.appendChild(document.createElement('br'));
  98.  
  99. var label = document.createElement('span');
  100. label.setAttribute('style', labelStyle);
  101. label.innerHTML = 'Ignore Artists: ';
  102. div.appendChild(label);
  103. var input=document.createElement('input');
  104. input.setAttribute('style', 'width: 20em;');
  105. input.placeholder='Ignore torrents with these artists';
  106. input.value = settings.artists ? settings.artists.join(', '):'';
  107. div.appendChild(input);
  108. input.addEventListener('change', changeSettings.bind(undefined, div), false);
  109.  
  110. var a=document.createElement('a');
  111. a.href='javascript:void(0);';
  112. a.innerHTML = 'Save';
  113. div.appendChild(document.createElement('br'));
  114. div.appendChild(a);
  115. }
  116.  
  117. function changeSettings(div, nul, message)
  118. {
  119. var settings = getSettings();
  120. var inputs=div.getElementsByTagName('input');
  121.  
  122. settings.blacklist = inputs[0].value.split(', ');
  123. settings.artists = inputs[1].value.split(', ');
  124.  
  125. window.localStorage.nonJamTop10Settings = JSON.stringify(settings);
  126. showSettings(message);
  127. }
  128.  
  129. function getSettings()
  130. {
  131. var settings = window.localStorage.nonJamTop10Settings;
  132. if(!settings)
  133. {
  134. settings = {blacklist:['jam.band', 'jam.rock']};
  135. }
  136. else
  137. settings = JSON.parse(settings);
  138. if(!settings.ignoreTags)
  139. settings.ignoreTags='';
  140. return settings;
  141. }

QingJ © 2025

镜像随时可能失效,请加Q群300939539或关注我们的公众号极客氢云获取最新地址