Subscene Language Filter

Filter Your Language in Subscene

当前为 2021-11-30 提交的版本,查看 最新版本

  1. // ==UserScript==
  2. // @name Subscene Language Filter
  3. // @namespace https://greasyfork.org/en/users/175554-reissfeld
  4. // @version 1.0
  5. // @description Filter Your Language in Subscene
  6. // @author Reissfeld
  7. // @match https://subscene.com/*
  8. // @icon https://www.google.com/s2/favicons?domain=subscene.com
  9. // @require https://openuserjs.org/src/libs/sizzle/GM_config.js
  10. // @require https://code.jquery.com/jquery-3.6.0.min.js
  11. // @grant GM_getValue
  12. // @grant GM_setValue
  13. // @grant GM_registerMenuCommand
  14. // @run-at document-start
  15. // @license MIT
  16. /* globals $, GM_config */
  17. // ==/UserScript==
  18. 'use strict';
  19. var darkm = `body {
  20. background-image: none;
  21. background-color: #111;
  22. color: #aaa;
  23. border-bottom: 130px solid #111
  24. }
  25.  
  26. #logo em {
  27. background: url("/content/images/logo-dark.gif") no-repeat scroll 0 0 transparent
  28. }
  29.  
  30. #search .text {
  31. border-color: #222628 #333 #222628 #333;
  32. background-color: #000;
  33. color: #eee
  34. }
  35.  
  36. #user-navigation,
  37. #forum-navigation,
  38. #admin-navigation {
  39. background: #000
  40. }
  41.  
  42. hr {
  43. border-top: 1px solid #444
  44. }
  45.  
  46. .poster {
  47. min-width: 106px;
  48. min-height: 132px;
  49. background: #000;
  50. border: solid 1px #222
  51. }
  52.  
  53. .content {
  54. border-top: 0
  55. }
  56.  
  57. .subtitles table {
  58. background-color: #000;
  59. width: 100%
  60. }
  61.  
  62. .subtitles thead {
  63. background: #000;
  64. color: #eee
  65. }
  66.  
  67. .subtitles td.a1 a:visited,
  68. .subtitles td.a1 .visited {
  69. background-color: #333;
  70. color: #999
  71. }
  72.  
  73. .subtitles td.a1 a:link {
  74. display: block;
  75. background-color: #000;
  76. color: #999
  77. }
  78.  
  79. .subtitles td.a1 a:hover {
  80. background-color: #333;
  81. cursor: pointer
  82. }
  83.  
  84. .byFilm .rating-guide span.visited {
  85. background: #333;
  86. border: 2px solid #000
  87. }
  88.  
  89. .byFilm .sort-by {
  90. background-color: #333;
  91. border: 1px solid #000;
  92. color: #999
  93. }
  94.  
  95. .subtitle .comment {
  96. -moz-box-shadow: inset -1px -2px 5px #333;
  97. -webkit-box-shadow: inset 1px 2px 5px #333;
  98. box-shadow: inset -1px -2px 5px #333;
  99. background: #000;
  100. color: #ccc
  101. }
  102.  
  103. .subtitle .comment:before {
  104. background: none
  105. }
  106.  
  107. .subtitles td a {
  108. color: #00599e
  109. }
  110.  
  111. .subtitles td a:hover {
  112. color: #0090ff
  113. }
  114.  
  115. .subtitles td.a41 {
  116. background: url('/content/images/icon-hearing-impaired-dark.png') no-repeat 0 5px
  117. }
  118.  
  119. .window {
  120. background: #062433;
  121. border-top: 1px solid #333
  122. }
  123.  
  124. .bread a,
  125. .bread a:visited {
  126. color: #00599e
  127. }
  128.  
  129. a,
  130. a:link {
  131. color: #00599e;
  132. text-decoration: none;
  133. cursor: pointer
  134. }
  135.  
  136. a:visited {
  137. color: #00599e
  138. }
  139.  
  140. a:hover {
  141. color: #0090ff
  142. }
  143.  
  144. .pagination>li>a,
  145. .pagination>li>span {
  146. background-color: #000;
  147. border: 1px solid #444
  148. }
  149.  
  150. .pagination>.disabled>a,
  151. .pagination>.disabled>a:focus,
  152. .pagination>.disabled>a:hover,
  153. .pagination>.disabled>span,
  154. .pagination>.disabled>span:focus,
  155. .pagination>.disabled>span:hover {
  156. background-color: #000;
  157. border-color: #444;
  158. color: #777
  159. }
  160.  
  161. .pagination>li>a:hover,
  162. .pagination>li>span:hover,
  163. .pagination>li>a:focus,
  164. .pagination>li>span:focus {
  165. background-color: #444
  166. }
  167.  
  168. .pagination>.active>a,
  169. .pagination>.active>span,
  170. .pagination>.active>a:hover,
  171. .pagination>.active>span:hover,
  172. .pagination>.active>a:focus,
  173. .pagination>.active>span:focus {
  174. color: #dedede;
  175. background-color: #000
  176. }
  177.  
  178. .btn-default {
  179. color: #333;
  180. background-color: #aaa;
  181. border-color: #555
  182. }
  183.  
  184. .btn-default:hover {
  185. background-color: #e6e6e6;
  186. border-color: #000
  187. }
  188.  
  189. .dropdown-menu {
  190. background-color: #aaa;
  191. border: 1px solid #555;
  192. border: 1px solid rgba(0, 0, 0, .15)
  193. }
  194.  
  195. .nav>li>a:hover,
  196. .nav>li>a:focus {
  197. background-color: #333
  198. }
  199.  
  200. .panel-default {
  201. border-color: #ddd
  202. }
  203.  
  204. .panel {
  205. background-color: #000;
  206. border: 1px solid #333;
  207. -webkit-box-shadow: none;
  208. box-shadow: none
  209. }
  210.  
  211. .form-control {
  212. color: #dedede;
  213. background-color: #000;
  214. border: 1px solid #444
  215. }
  216.  
  217. .sand-box {
  218. background-color: #000
  219. }
  220.  
  221. .sand-box>ul>li,
  222. .sand-box .area {
  223. background-color: #222;
  224. border-bottom: 1px solid #000
  225. }
  226.  
  227. #messageCount.badge {
  228. background-color: #000
  229. }
  230.  
  231. .my-recent-messages {
  232. background-color: #000
  233. }
  234.  
  235. .message-view {
  236. background-color: #000
  237. }
  238.  
  239. .message-view .list-group-item-sender {
  240. background-color: #222
  241. }
  242.  
  243. .list-group-item {
  244. background-color: #000;
  245. border: 1px solid #444
  246. }
  247.  
  248. .ratings ul {
  249. background-color: #000
  250. }
  251.  
  252. .ratings ul>li {
  253. background-color: #222;
  254. border-bottom: 1px solid #000
  255. }
  256.  
  257. .user-home .subtitles .list {
  258. background-color: #000
  259. }
  260.  
  261. .user-home .subtitles ul>li,
  262. .user-home .footer {
  263. background-color: #222;
  264. border-bottom: 1px solid #000
  265. }
  266.  
  267. .posts .post {
  268. -moz-box-shadow: none;
  269. -webkit-box-shadow: none;
  270. box-shadow: none;
  271. border: 1px solid #333;
  272. color: #dedede;
  273. background: #000
  274. }
  275.  
  276. .posts .post:before {
  277. background: none
  278. }
  279.  
  280. footer {
  281. background: #000
  282. }
  283.  
  284. .sustain {
  285. border-bottom: solid 1px #444
  286. }
  287. .byTitle .search-result{
  288. background-color: #3e351f !important;
  289. }`
  290. function addGlobalStyle(css) {
  291. var head, style;
  292. head = document.getElementsByTagName('head')[0];
  293. if (!head) { return; }
  294. style = document.createElement('style');
  295. style.type = 'text/css';
  296. style.innerHTML = css;
  297. style.setAttribute('class','gelap')
  298. head.appendChild(style);
  299. }
  300. GM_config.init(
  301. {
  302. 'id': 'Aturan',
  303. 'title': 'Settings',
  304. 'frameStyle': {
  305. width: '480px'
  306. },
  307. 'fields': {
  308. 'Filter': {
  309. 'label': 'Language to Filter (Case Sensitive)',
  310. 'type': 'text'
  311. },
  312. 'DarkRadio': {
  313. 'label': ' Dark Mode',
  314. 'type': 'radio',
  315. 'options': ['Yes','No'],
  316. 'default': 'No'
  317. },
  318. 'DarkEdit': {
  319. 'type': 'textarea',
  320. 'default': darkm
  321. }
  322. },
  323. 'events': {
  324. 'save': simpan,
  325. 'close': tutup,
  326. 'reset': function() { alert('Save & Close after Resetting'); }
  327. },
  328. 'css': '#Aturan_field_DarkEdit{margin: 0px 0px 0px 0px;width: 100%;height: 50%;}'
  329. }
  330. )
  331. function simpan() {
  332. jalan()
  333. modegelap()
  334. }
  335. function pengaturan(){
  336. GM_config.open()
  337. }
  338. function tutup(){
  339. jalan()
  340. modegelap()
  341. }
  342. GM_registerMenuCommand('Add Filter', pengaturan);
  343.  
  344. function modegelap(){
  345. if(GM_config.get('DarkRadio') == 'Yes'){
  346. addGlobalStyle(GM_config.get('DarkEdit'))
  347. }else{
  348. document.querySelector('.gelap').remove()
  349. }
  350. }
  351. modegelap()
  352. function jalan(){
  353. var lang = document.querySelectorAll('.l.r')
  354. var langstart = document.querySelectorAll('.language-start')
  355. for(let i = 0; i < lang.length; i++){
  356. if(langstart.length > i){
  357. langstart[i].parentElement.style = 'display:none;'
  358. }
  359. if(!lang[i].innerText.includes(GM_config.get('Filter'))){
  360. lang[i].parentElement.parentElement.parentElement.style = 'display:none;'
  361.  
  362. }
  363. if(lang[i].innerText.includes(GM_config.get('Filter'))){
  364. lang[i].parentElement.parentElement.parentElement.style = 'display:table-row;'
  365. }
  366. }
  367. }
  368. window.addEventListener('load', function() {
  369. jalan()
  370. }, false);