Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- // ==UserScript==
- // @name Better Catalogue Filter
- // @namespace http://tampermonkey.net/
- // @version 2025-06-18
- // @description Improved filter function
- // @author (You)
- // @match https://8chan.se/*/catalog.html*
- // @match https://8chan.moe/*/catalog.html*
- // @icon https://www.google.com/s2/favicons?sz=64&domain=8chan.se
- // @grant none
- // ==/UserScript==
- (function() {
- 'use strict';
- let old_field = document.getElementById('catalogSearchField');
- let parent_div = old_field.parentElement;
- old_field.remove();
- let new_field = document.createElement('input');
- new_field.id = 'new_catalogSearchField';
- new_field.addEventListener('keyup', (ev) => {
- let cells = document.getElementsByClassName('catalogCell');
- let re = new RegExp(ev.target.value, 'i');
- [...cells].forEach((el) => {
- let label = el.querySelector('.labelSubject')?.innerHTML;
- let message = el.querySelector('.divMessage')?.innerHTML;
- el.style.display = 'inline-block';
- if(!re.test(label) && !re.test(message)){
- el.style.display = 'none';
- }
- });
- });
- parent_div.append(new_field);
- let queryString = window.location.search;
- let params = new URLSearchParams(queryString);
- let pname = 'filter'; // avoid using 's' since it conflicts with original script
- if(params.get(pname)){
- new_field.value = params.get(pname);
- let event = new Event('keyup');
- setTimeout(() => {
- new_field.dispatchEvent(event);
- }, 1500);
- }
- })();
Advertisement
Add Comment
Please, Sign In to add comment