Guest User

Improved filter function for 8chan catalogue

a guest
Jun 17th, 2025
19
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. // ==UserScript==
  2. // @name         Better Catalogue Filter
  3. // @namespace    http://tampermonkey.net/
  4. // @version      2025-06-18
  5. // @description  Improved filter function
  6. // @author       (You)
  7. // @match        https://8chan.se/*/catalog.html*
  8. // @match        https://8chan.moe/*/catalog.html*
  9. // @icon         https://www.google.com/s2/favicons?sz=64&domain=8chan.se
  10. // @grant        none
  11. // ==/UserScript==
  12.  
  13. (function() {
  14.     'use strict';
  15.     let old_field = document.getElementById('catalogSearchField');
  16.     let parent_div = old_field.parentElement;
  17.     old_field.remove();
  18.  
  19.     let new_field = document.createElement('input');
  20.     new_field.id = 'new_catalogSearchField';
  21.     new_field.addEventListener('keyup', (ev) => {
  22.         let cells = document.getElementsByClassName('catalogCell');
  23.         let re = new RegExp(ev.target.value, 'i');
  24.         [...cells].forEach((el) => {
  25.             let label = el.querySelector('.labelSubject')?.innerHTML;
  26.             let message = el.querySelector('.divMessage')?.innerHTML;
  27.             el.style.display = 'inline-block';
  28.             if(!re.test(label) && !re.test(message)){
  29.                 el.style.display = 'none';
  30.             }
  31.         });
  32.     });
  33.     parent_div.append(new_field);
  34.  
  35.     let queryString = window.location.search;
  36.     let params = new URLSearchParams(queryString);
  37.     let pname = 'filter'; // avoid using 's' since it conflicts with original script
  38.     if(params.get(pname)){
  39.         new_field.value = params.get(pname);
  40.         let event = new Event('keyup');
  41.         setTimeout(() => {
  42.             new_field.dispatchEvent(event);
  43.         }, 1500);
  44.     }
  45. })();
Advertisement
Add Comment
Please, Sign In to add comment