// ==UserScript== // @name Filtre topic // @namespace https://www.jeuxvideo.com/ // @version 1.01 // @description Fitre les topics sur jvc par pseudo // @include https://www.jeuxvideo.com/forums/* // @grant none // @downloadURL none // ==/UserScript== let html = `
`; let regex = /(?<=forums\/)(\d+)(-\d+-\d+-)(\d+)/; if (regex.exec(window.location.href)[1] != '0') { document.querySelector('.group-two').style.marginBottom = '.3125rem'; document.querySelector('.bloc-pre-left').insertAdjacentHTML('afterend', html); if (regex.exec(window.location.href)[3] == 1) { document.querySelector('.txt-search').setAttribute('value', document.querySelector('.bloc-header').firstElementChild.innerText); } document.querySelector('.btn-lancer-rech').onclick = rechercheAuteur; } async function rechercheAuteur() { let pageCount = 0; document.querySelectorAll('div:nth-child(1) > div.bloc-liste-num-page > span').forEach((element) => { if (/^-?\d+$/.test(element.textContent)) pageCount = element.textContent; }); let auteur = document.querySelector('.txt-search').value.toLowerCase(); document.querySelectorAll('.bloc-message-forum').forEach(e => e.remove()); for (let pageIndex = 1; pageIndex <= pageCount; pageIndex++) { let response = await fetch(window.location.href.replace(regex, '$1$2' + pageIndex)); let data = new DOMParser().parseFromString(await response.text(), "text/html"); let messages = data.getElementsByClassName('bloc-message-forum'); for (let i = messages.length - 1; i >= 0; i--) { let pseudo = messages[i].querySelector('.bloc-header > span'); if (pseudo == null || pseudo.innerText.replace(/\s+/g, '').toLowerCase() !== auteur) { messages[i].parentNode.removeChild(messages[i]); } else { messages[i].querySelectorAll('.JvCare').forEach(e => { let classes = e.getAttribute('class'); let href = jvCake(classes); classes = classes.split(' '); let index = classes.indexOf('JvCare'); classes.splice(index, index + 2); classes.unshift('xXx'); classes = classes.join(' '); e.outerHTML = '' + e.innerHTML + ''; }); messages[i].querySelectorAll('.blockquote-jv .blockquote-jv').forEach(blockquote => { console.log(blockquote); blockquote.insertAdjacentHTML('afterbegin', '
'); blockquote.querySelector('.nested-quote-toggle-box').onclick = () => { if (blockquote.getAttribute('data-visible') !== '1') { blockquote.setAttribute('data-visible', '1') } else { blockquote.setAttribute('data-visible', '0') } }; }); } } let e = document.querySelectorAll('.bloc-pagi-default')[1]; for (let i = 0; i < messages.length; i++) { e.insertAdjacentHTML('beforebegin', messages[i].outerHTML); } } } function jvCake(cls) { let base16 = '0A12B34C56D78E9F', lien = '', s = cls.split(' ')[1]; for (let i = 0; i < s.length; i += 2) { lien += String.fromCharCode(base16.indexOf(s.charAt(i)) * 16 + base16.indexOf(s.charAt(i + 1))); } return lien; }