Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- // ==UserScript==
- // @name AntiCassos
- // @namespace BORDEL-DE-CUL
- // @author BORDEL-DE-CUL
- // @match *://www.jeuxvideo.com/*
- // @description Cache les messages privés des gros CASSOS qui spamment en MP
- // @version 0.0.1
- // @grant none
- // ==/UserScript==
- /*
- INITIALISATION
- */
- //On check si les listes sont créées, si tel n'est pas le cas, alors on les crée
- function initialisationTableaux()
- {
- const listeDesCassos = localStorage.getItem('cassos')
- const listeDesMotsClefs = localStorage.getItem('motsclefs');
- var unTableauVide = [];
- var jsonifyLeTableauVide = JSON.stringify(unTableauVide);
- if(!listeDesCassos)
- {
- localStorage.setItem('cassos', jsonifyLeTableauVide);
- }
- if(!listeDesMotsClefs)
- {
- localStorage.setItem('motsclefs', jsonifyLeTableauVide);
- }
- return 0;
- }
- initialisationTableaux();
- /*
- ROUTINE
- */
- //Ce truc PATCH OUT la REQUEST vers la page list_notification_header.php, ainsi, on peut aisément virer tous les cassos qui se trouve dans la RESPONSE avant son utilisation, ainsi, plus de notifications !
- //D'abord, je dois récupérer ton lien ainsi que ton ajax_hash, j'en ai besoin
- var leLienAvecLeHash = document.getElementsByClassName("jv-nav-dropdown-container-content")[1].getAttribute("data-url");
- //Ensuite, je vais devoir y faire une requête
- var requete = new XMLHttpRequest();
- requete.open("GET", leLienAvecLeHash);
- requete.send();
- //Maintenant que j'ai la RESPONSE de la REQUEST, je vais devoir y jerter tous les CASSOS s'y trouvant
- var le_json = {};
- requete.onreadystatechange = (e) => {
- var el = document.createElement("html");
- el.innerHTML = JSON.parse(requete.response)["html"];
- var listeCassos = JSON.parse(localStorage.getItem("cassos"));
- var listeMotsClefs = JSON.parse(localStorage.getItem("motsclefs"));
- var auteursMessages = el.getElementsByClassName("jv-nav-dropdown-author");
- var sujetsMessages = el.getElementsByTagName("a");
- for(var i = auteursMessages.length - 1; i >= 0; i--)
- {
- var auteur = auteursMessages[i].innerHTML.trim();
- var sujet = sujetsMessages[i].innerHTML.trim();
- if(listeCassos.length === 0) { } else {
- listeCassos.forEach(cassos => {
- if(auteur.toLowerCase().includes(cassos.toLowerCase())){
- sujetsMessages[0].parentElement.parentElement.parentElement.removeChild(sujetsMessages[0].parentElement.parentElement);
- }
- });
- }
- if(listeMotsClefs.length === 0) { } else {
- listeMotsClefs.forEach(motclef => {
- if(sujet.toLowerCase().includes(motclef.toLowerCase())){
- sujetsMessages[0].parentElement.parentElement.parentElement.removeChild(sujetsMessages[0].parentElement.parentElement);
- }
- });
- }
- }
- le_json = {
- "erreur":[],
- "html":el.innerHTML,
- "nb_notif_abo":0,
- 'nb_notif_mp':0,
- 'nb_notif_mp_unread':-1
- }
- //Une fois que la RESPONSE de la REQUEST a été purgée de tous les CASSOS s'y trouvant, on peut remplacer l'attribut html par notre JSON bricolé
- document.getElementsByClassName("jv-nav-dropdown-container-content")[1].setAttribute("data-url", "data:application/json;base64,".concat(btoa(JSON.stringify(le_json))));
- }
- //Enfin, ce truc va venir jerter tous les cassos de la liste des messages privés, tout simplement !
- function purificationDesCassos()
- {
- var listeCassos = JSON.parse(localStorage.getItem("cassos"));
- var listeMotsClefs = JSON.parse(localStorage.getItem("motsclefs"));
- var auteursMessages = document.getElementsByClassName("exp-msg");
- var sujetsMessages = document.getElementsByClassName("sujet-msg");
- for(var i = auteursMessages.length - 1; i >= 1; i--)
- {
- var auteur = auteursMessages[i].firstChild.firstChild.innerHTML.trim();
- var sujet = sujetsMessages[i].firstChild.innerHTML.trim();
- if(listeCassos.length === 0) { } else {
- listeCassos.forEach(cassos => {
- if(auteur.toLowerCase().includes(cassos.toLowerCase())){
- auteursMessages[i].parentElement.parentElement.removeChild(auteursMessages[i].parentElement);
- }
- });
- }
- if(listeMotsClefs.length === 0) { } else {
- listeMotsClefs.forEach(motclef => {
- if(sujet.toLowerCase().includes(motclef.toLowerCase())){
- auteursMessages[i].parentElement.parentElement.removeChild(auteursMessages[i].parentElement);
- }
- });
- }
- }
- }
- purificationDesCassos();
- /*
- CASSOS MANAGER
- */
- //Ajouter le beau formulaire Cassos Manager
- var cassosManagerDiv = document.createElement("div");
- cassosManagerDiv.className = "dossiers-perso";
- cassosManagerDiv.innerHTML = "<ul><li class='list-header'>CassosManager</li><li>Cassos filtrés</li><select id='les_cassos'></select><button id='removecassos'>Supprimer</button><input type='text' id='cassosInput'/><button id='addcassos'>Ajouter</button><li>Mots-clés filtrés</li><select id='les_motsclefs'></select><button id='removemotclef'>Supprimer</button><input type='text' id='motClefInput'/><button id='addmotclef'>Ajouter</button></ul>";
- document.getElementById("mp-menus").appendChild(cassosManagerDiv);
- //Ajouter un cassos dans la liste
- function ajouterCassos()
- {
- var listeCassos = JSON.parse(localStorage.getItem("cassos"));
- var cassosInput = document.getElementById("cassosInput").value;
- if(cassosInput.trim() != '')
- {
- listeCassos.push(cassosInput.trim());
- var jsonify = JSON.stringify(listeCassos);
- localStorage.setItem('cassos', jsonify);
- }
- afficherCassos();
- purificationDesCassos();
- }
- var ajouterCassosButton = cassosManagerDiv.querySelector("#addcassos");
- ajouterCassosButton.addEventListener("click", ajouterCassos, true);
- //Retirer un cassos de la liste en cliquant dessus
- function retirerCassos()
- {
- var listeCassos = JSON.parse(localStorage.getItem("cassos"));
- var cassosInput = document.getElementById("les_cassos").value;
- var index = listeCassos.indexOf(cassosInput);
- listeCassos.splice(index, 1);
- var jsonify = JSON.stringify(listeCassos);
- localStorage.setItem('cassos', jsonify);
- afficherCassos();
- }
- var retirerCassosButton = cassosManagerDiv.querySelector("#removecassos");
- retirerCassosButton.addEventListener("click", retirerCassos, true);
- //Afficher tous les cassos de la liste
- function afficherCassos()
- {
- var divListeCassos = document.getElementById("les_cassos");
- while(divListeCassos.firstChild){
- divListeCassos.removeChild(divListeCassos.firstChild);
- }
- var listeCassos = JSON.parse(localStorage.getItem("cassos"));
- listeCassos.forEach(afficherUnCassos);
- }
- function afficherUnCassos(cassos)
- {
- var cassosHandled = document.createElement('option');
- cassosHandled.setAttribute("value", cassos);
- cassosHandled.innerHTML = cassos;
- document.getElementById("les_cassos").appendChild(cassosHandled);
- }
- afficherCassos();
- //Ajouter un mot-clé dans la liste
- function ajouterMotClef()
- {
- var listeMotsClefs = JSON.parse(localStorage.getItem("motsclefs"));
- var motClefInput = document.getElementById("motClefInput").value;
- if(motClefInput.trim() != '')
- {
- listeMotsClefs.push(motClefInput.trim());
- var jsonify = JSON.stringify(listeMotsClefs);
- localStorage.setItem('motsclefs', jsonify);
- }
- afficherMotsClefs();
- purificationDesCassos();
- }
- var ajouterMotClefButton = cassosManagerDiv.querySelector("#addmotclef");
- ajouterMotClefButton.addEventListener("click", ajouterMotClef, true);
- //Retirer un mot-clé dans la liste en cliquant dessus
- function retirerMotClef()
- {
- var listeMotsClefs = JSON.parse(localStorage.getItem("cassos"));
- var motClefInput = document.getElementById("les_motsclefs").value;
- var index = listeMotsClefs.indexOf(motClefInput);
- listeMotsClefs.splice(index, 1);
- var jsonify = JSON.stringify(listeMotsClefs);
- localStorage.setItem('motsclefs', jsonify);
- afficherMotsClefs();
- }
- var retirerMotClefButton = cassosManagerDiv.querySelector("#removemotclef");
- retirerMotClefButton.addEventListener("click", retirerMotClef, true);
- //Afficher tous les mots-clés dans la liste
- function afficherMotsClefs()
- {
- var divListeMotsClefs = document.getElementById("les_motsclefs");
- while(divListeMotsClefs.firstChild){
- divListeMotsClefs.removeChild(divListeMotsClefs.firstChild);
- }
- var listeMotsClefs = JSON.parse(localStorage.getItem("motsclefs"));
- listeMotsClefs.forEach(afficherUnMotClef);
- }
- function afficherUnMotClef(motclef)
- {
- var cassosHandled = document.createElement('option');
- cassosHandled.setAttribute("value", motclef);
- cassosHandled.innerHTML = motclef;
- document.getElementById("les_motsclefs").appendChild(cassosHandled);
- }
- afficherMotsClefs();
Add Comment
Please, Sign In to add comment