// ==UserScript== // @name Filtre Anti-Spam MP // @description Filtre les spams de MP sur JVC selon les patterns définis par l'utilisateur // @version 4 // @match http://www.jeuxvideo.com/* // @match http://m.jeuxvideo.com/* // @match https://www.jeuxvideo.com/* // @match https://m.jeuxvideo.com/* // @author Alectrona // @language fr // @grant GM.getValue // @grant GM.setValue // @namespace https://greasyfork.org/users/396340 // @downloadURL none // ==/UserScript== var bl1 = []; var bl2 = []; var bl1tags; var bl2tags; var compteur; if (document.getElementsByClassName('jv-account-number-mp')[0].className == "jv-account-number-mp has-notif") { document.getElementsByClassName('jv-account-number-mp')[0].className = "jv-account-number-mp"; } function ctrcheck() { if (document.getElementsByClassName('jv-account-number-mp')[0].parentNode.className != 'jv-nav-account jv-nav-account-mp dropdown open') { document.getElementsByClassName('jv-account-number-mp')[0].setAttribute('data-val', 0); document.getElementsByClassName('jv-account-number-mp')[0].className = "jv-account-number-mp"; setTimeout(function(){ compteur = 0; var docLinks = document.getElementsByClassName('jv-nav-dropdown-details'); var parent; compteur = 0; for(var i=0;i < docLinks.length; i++){ var k = 0; var blmatch = 1; while(k < bl1.length && blmatch == 1) { var auth = docLinks[i].childNodes[0].innerHTML.toLowerCase(); var str = bl1[k]; if (str && auth.includes(str)) { parent = docLinks[i].parentNode; parent.style.display = "none"; blmatch = 0; } k++; } var m = 0; while(m < bl2.length && blmatch == 1) { var auth2 = docLinks[i].childNodes[1].title.toLowerCase();; var str2 = bl2[m]; if (str2 && auth2.includes(str2)) { parent = docLinks[i].parentNode; parent.style.display = "none"; blmatch = 0; } m++; } if (blmatch == 1 && docLinks[i].parentNode.className == "jv-nav-dropdown-item jv-nav-dropdown-unread") { compteur++; } } }, 200); } } function editbl1() { var newbl1 = prompt("------------------------------- Saisissez les patterns de PSEUDOS à blacklister, séparés d'une virgule. (Insensible à la casse) -------------------------------", bl1tags); if (newbl1 != null) { newbl1 = newbl1.toLowerCase(); bl1tags = newbl1; bl1 = newbl1.split(','); GM.setValue("abl1", JSON.stringify(bl1)); setTimeout(function(){ compteur = 0; var docLinks = document.getElementsByClassName('jv-nav-dropdown-details'); var parent; compteur = 0; for(var i=0;i < docLinks.length; i++){ var k = 0; var blmatch = 1; while(k < bl1.length && blmatch == 1) { var auth = docLinks[i].childNodes[0].innerHTML.toLowerCase(); var str = bl1[k]; if (str && auth.includes(str)) { parent = docLinks[i].parentNode; parent.style.display = "none"; blmatch = 0; } else { parent = docLinks[i].parentNode; parent.style.display = ""; } k++; } var m = 0; while(m < bl2.length && blmatch == 1) { var auth2 = docLinks[i].childNodes[1].title.toLowerCase();; var str2 = bl2[m]; if (str2 && auth2.includes(str2)) { parent = docLinks[i].parentNode; parent.style.display = "none"; blmatch = 0; } else { parent = docLinks[i].parentNode; parent.style.display = ""; } m++; } if (blmatch == 1 && docLinks[i].parentNode.className == "jv-nav-dropdown-item jv-nav-dropdown-unread") { compteur++; } } }, 200); } } function editbl2() { var newbl2 = prompt("---------------------------- Saisissez les patterns d'OBJETS DE MP à blacklister, séparés d'une virgule. (Insensible à la casse) ----------------------------", bl2tags); if (newbl2 != null) { newbl2 = newbl2.toLowerCase(); bl2tags = newbl2; bl2 = newbl2.split(','); GM.setValue("abl2", JSON.stringify(bl2)); setTimeout(function(){ compteur = 0; var docLinks = document.getElementsByClassName('jv-nav-dropdown-details'); var parent; compteur = 0; for(var i=0;i < docLinks.length; i++){ var k = 0; var blmatch = 1; while(k < bl1.length && blmatch == 1) { var auth = docLinks[i].childNodes[0].innerHTML.toLowerCase(); var str = bl1[k]; if (str && auth.includes(str)) { parent = docLinks[i].parentNode; parent.style.display = "none"; blmatch = 0; } else { parent = docLinks[i].parentNode; parent.style.display = ""; } k++; } var m = 0; while(m < bl2.length && blmatch == 1) { var auth2 = docLinks[i].childNodes[1].title.toLowerCase();; var str2 = bl2[m]; if (str2 && auth2.includes(str2)) { parent = docLinks[i].parentNode; parent.style.display = "none"; blmatch = 0; } else { parent = docLinks[i].parentNode; parent.style.display = ""; } m++; } if (blmatch == 1 && docLinks[i].parentNode.className == "jv-nav-dropdown-item jv-nav-dropdown-unread") { compteur++; } } }, 200); } } (async function() { bl1 = await GM.getValue('abl1','["leao","riyadmahrez"]'); bl2 = await GM.getValue('abl2','["vous 25€ par","discord des igoent"]'); bl1 = JSON.parse(bl1); bl2 = JSON.parse(bl2); bl1tags = bl1.join(); bl2tags = bl2.join(); })(); window.onload = function() { var mp = document.getElementsByClassName('jv-account-number-mp'); mp[0].click(); var mpbox = document.getElementsByClassName('jv-nav-dropdown-container')[1]; var mptriangle = document.getElementsByClassName('jv-nav-account jv-nav-account-mp dropdown open')[0]; mptriangle.style.height = "36px"; mpbox.style.visibility = "hidden"; mp[0].click(); setTimeout(function(){ var harcelement = document.getElementsByClassName('jv-nav-harassment-warning')[0]; harcelement.innerHTML = ""; harcelement.style.height = "27px"; harcelement.style.padding = "1px"; harcelement.style.textAlign = "center"; var node = document.createElement("input"); node.setAttribute("type", "button"); node.setAttribute("value", "Liste noire des pseudos"); node.setAttribute("style", "color:black;"); node.setAttribute("id", "editbl1"); harcelement.appendChild(node); var node2 = document.createElement("input"); node2.setAttribute("type", "button"); node2.setAttribute("value", "Liste noire des objets"); node2.setAttribute("style", "color:black;"); node2.setAttribute("id", "editbl2"); harcelement.appendChild(node2); document.getElementById('editbl1').onclick = function() {editbl1();}; document.getElementById('editbl2').onclick = function() {editbl2();}; var docLinks = document.getElementsByClassName('jv-nav-dropdown-details'); var parent; compteur = 0; for(var i=0;i < docLinks.length; i++){ var k = 0; var blmatch = 1; while(k < bl1.length && blmatch == 1) { var auth = docLinks[i].childNodes[0].innerHTML.toLowerCase(); var str = bl1[k]; if (str && auth.includes(str)) { parent = docLinks[i].parentNode; parent.style.display = "none"; // docLinks[i].className = "spammeur"; blmatch = 0; } k++; } var m = 0; while(m < bl2.length && blmatch == 1) { var auth2 = docLinks[i].childNodes[1].title.toLowerCase();; var str2 = bl2[m]; if (str2 && auth2.includes(str2)) { parent = docLinks[i].parentNode; parent.style.display = "none"; // docLinks[i].className = "spammeur"; blmatch = 0; } m++; } if (blmatch == 1 && docLinks[i].parentNode.className == "jv-nav-dropdown-item jv-nav-dropdown-unread") { compteur++; } } }, 500); setTimeout(function(){ mpbox.style.visibility = "visible"; mptriangle.style.height = ""; document.getElementsByClassName('jv-account-number-mp')[0].onclick = function() {ctrcheck();}; if (compteur > 0) { document.getElementsByClassName('jv-account-number-mp')[0].setAttribute('data-val', compteur); document.getElementsByClassName('jv-account-number-mp')[0].className = "jv-account-number-mp has-notif"; } }, 1000); };