Guest User

Untitled

a guest
Apr 10th, 2021
112
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. // ==UserScript==
  2. // @name        AntiCassos
  3. // @namespace   BORDEL-DE-CUL
  4. // @author      BORDEL-DE-CUL
  5. // @match       *://www.jeuxvideo.com/*
  6. // @description Cache les messages privés des gros CASSOS qui spamment en MP
  7. // @version     0.0.1
  8. // @grant       none
  9. // ==/UserScript==
  10.  
  11.  
  12.  
  13. /*
  14.  
  15. INITIALISATION
  16.  
  17. */
  18.  
  19.  
  20. //On check si les listes sont créées, si tel n'est pas le cas, alors on les crée
  21. function initialisationTableaux()
  22. {
  23.  
  24. const listeDesCassos = localStorage.getItem('cassos')
  25. const listeDesMotsClefs = localStorage.getItem('motsclefs');
  26.  
  27. var unTableauVide = [];
  28. var jsonifyLeTableauVide = JSON.stringify(unTableauVide);
  29.  
  30. if(!listeDesCassos)
  31. {
  32.  
  33.     localStorage.setItem('cassos', jsonifyLeTableauVide);
  34. }
  35.  
  36. if(!listeDesMotsClefs)
  37. {
  38.     localStorage.setItem('motsclefs', jsonifyLeTableauVide);
  39. }
  40.     return 0;
  41. }
  42. initialisationTableaux();
  43.  
  44.  
  45.  
  46.  
  47.  
  48. /*
  49.  
  50. ROUTINE
  51.  
  52. */
  53.  
  54.  
  55. //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 !
  56.  
  57. //D'abord, je dois récupérer ton lien ainsi que ton ajax_hash, j'en ai besoin
  58. var leLienAvecLeHash = document.getElementsByClassName("jv-nav-dropdown-container-content")[1].getAttribute("data-url");
  59.  
  60. //Ensuite, je vais devoir y faire une requête
  61. var requete = new XMLHttpRequest();
  62. requete.open("GET", leLienAvecLeHash);
  63. requete.send();
  64.  
  65. //Maintenant que j'ai la RESPONSE de la REQUEST, je vais devoir y jerter tous les CASSOS s'y trouvant
  66. var le_json = {};
  67. requete.onreadystatechange = (e) => {
  68.   var el = document.createElement("html");
  69.   el.innerHTML = JSON.parse(requete.response)["html"];
  70.  
  71.   var listeCassos = JSON.parse(localStorage.getItem("cassos"));
  72.   var listeMotsClefs = JSON.parse(localStorage.getItem("motsclefs"));
  73.  
  74.   var auteursMessages = el.getElementsByClassName("jv-nav-dropdown-author");
  75.   var sujetsMessages = el.getElementsByTagName("a");
  76.  
  77.   for(var i = auteursMessages.length - 1; i >= 0; i--)
  78.   {
  79.    var auteur = auteursMessages[i].innerHTML.trim();
  80.    var sujet = sujetsMessages[i].innerHTML.trim();
  81.    if(listeCassos.length === 0) { } else {
  82.    listeCassos.forEach(cassos => {
  83.        if(auteur.toLowerCase().includes(cassos.toLowerCase())){
  84.           sujetsMessages[0].parentElement.parentElement.parentElement.removeChild(sujetsMessages[0].parentElement.parentElement);
  85.        }
  86.    });
  87.    }
  88.    if(listeMotsClefs.length === 0) { } else {
  89.    listeMotsClefs.forEach(motclef => {
  90.        if(sujet.toLowerCase().includes(motclef.toLowerCase())){
  91.          sujetsMessages[0].parentElement.parentElement.parentElement.removeChild(sujetsMessages[0].parentElement.parentElement);
  92.        }
  93.    });
  94.    }
  95.   }
  96.  
  97.   le_json = {
  98.       "erreur":[],
  99.       "html":el.innerHTML,
  100.       "nb_notif_abo":0,
  101.       'nb_notif_mp':0,
  102.       'nb_notif_mp_unread':-1
  103.   }
  104.  
  105.   //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é
  106.  
  107.   document.getElementsByClassName("jv-nav-dropdown-container-content")[1].setAttribute("data-url", "data:application/json;base64,".concat(btoa(JSON.stringify(le_json))));
  108. }
  109.  
  110.  
  111.  
  112.  
  113.  
  114. //Enfin, ce truc va venir jerter tous les cassos de la liste des messages privés, tout simplement !
  115.  
  116. function purificationDesCassos()
  117. {
  118.  
  119. var listeCassos = JSON.parse(localStorage.getItem("cassos"));
  120. var listeMotsClefs = JSON.parse(localStorage.getItem("motsclefs"));
  121.  
  122. var auteursMessages = document.getElementsByClassName("exp-msg");
  123. var sujetsMessages = document.getElementsByClassName("sujet-msg");
  124.  
  125.  
  126. for(var i = auteursMessages.length - 1; i >= 1; i--)
  127. {
  128.    var auteur = auteursMessages[i].firstChild.firstChild.innerHTML.trim();
  129.    var sujet = sujetsMessages[i].firstChild.innerHTML.trim();
  130.    if(listeCassos.length === 0) { } else {
  131.    listeCassos.forEach(cassos => {
  132.        if(auteur.toLowerCase().includes(cassos.toLowerCase())){
  133.           auteursMessages[i].parentElement.parentElement.removeChild(auteursMessages[i].parentElement);
  134.        }
  135.    });
  136.    }
  137.    if(listeMotsClefs.length === 0) { } else {
  138.    listeMotsClefs.forEach(motclef => {
  139.        if(sujet.toLowerCase().includes(motclef.toLowerCase())){
  140.          auteursMessages[i].parentElement.parentElement.removeChild(auteursMessages[i].parentElement);
  141.        }
  142.    });
  143.    }
  144. }
  145.  
  146. }
  147. purificationDesCassos();
  148.  
  149.  
  150.  
  151.  
  152.  
  153.  
  154.  
  155. /*
  156.  
  157. CASSOS MANAGER
  158.  
  159. */
  160.  
  161.  
  162.  
  163. //Ajouter le beau formulaire Cassos Manager
  164. var cassosManagerDiv = document.createElement("div");
  165. cassosManagerDiv.className = "dossiers-perso";
  166. 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>";
  167. document.getElementById("mp-menus").appendChild(cassosManagerDiv);
  168.  
  169. //Ajouter un cassos dans la liste
  170. function ajouterCassos()
  171. {
  172.    var listeCassos = JSON.parse(localStorage.getItem("cassos"));
  173.    var cassosInput = document.getElementById("cassosInput").value;
  174.    if(cassosInput.trim() != '')
  175.    {
  176.        listeCassos.push(cassosInput.trim());
  177.        var jsonify = JSON.stringify(listeCassos);
  178.        localStorage.setItem('cassos', jsonify);
  179.    }
  180.    afficherCassos();
  181.    purificationDesCassos();
  182. }
  183. var ajouterCassosButton = cassosManagerDiv.querySelector("#addcassos");
  184. ajouterCassosButton.addEventListener("click", ajouterCassos, true);
  185.  
  186. //Retirer un cassos de la liste en cliquant dessus
  187. function retirerCassos()
  188. {
  189.     var listeCassos = JSON.parse(localStorage.getItem("cassos"));
  190.     var cassosInput = document.getElementById("les_cassos").value;
  191.     var index = listeCassos.indexOf(cassosInput);
  192.     listeCassos.splice(index, 1);
  193.     var jsonify = JSON.stringify(listeCassos);
  194.     localStorage.setItem('cassos', jsonify);
  195.     afficherCassos();
  196. }
  197.  
  198. var retirerCassosButton = cassosManagerDiv.querySelector("#removecassos");
  199. retirerCassosButton.addEventListener("click", retirerCassos, true);
  200.  
  201. //Afficher tous les cassos de la liste
  202. function afficherCassos()
  203. {
  204.     var divListeCassos = document.getElementById("les_cassos");
  205.     while(divListeCassos.firstChild){
  206.         divListeCassos.removeChild(divListeCassos.firstChild);
  207.     }
  208.     var listeCassos = JSON.parse(localStorage.getItem("cassos"));
  209.     listeCassos.forEach(afficherUnCassos);
  210. }
  211. function afficherUnCassos(cassos)
  212. {
  213.     var cassosHandled = document.createElement('option');
  214.     cassosHandled.setAttribute("value", cassos);
  215.     cassosHandled.innerHTML = cassos;
  216.     document.getElementById("les_cassos").appendChild(cassosHandled);
  217.  
  218. }
  219. afficherCassos();
  220.  
  221. //Ajouter un mot-clé dans la liste
  222. function ajouterMotClef()
  223. {
  224.    var listeMotsClefs = JSON.parse(localStorage.getItem("motsclefs"));
  225.    var motClefInput = document.getElementById("motClefInput").value;
  226.    if(motClefInput.trim() != '')
  227.    {
  228.        listeMotsClefs.push(motClefInput.trim());
  229.        var jsonify = JSON.stringify(listeMotsClefs);
  230.        localStorage.setItem('motsclefs', jsonify);
  231.    }
  232.    afficherMotsClefs();
  233.    purificationDesCassos();
  234. }
  235. var ajouterMotClefButton = cassosManagerDiv.querySelector("#addmotclef");
  236. ajouterMotClefButton.addEventListener("click", ajouterMotClef, true);
  237.  
  238. //Retirer un mot-clé dans la liste en cliquant dessus
  239. function retirerMotClef()
  240. {
  241.     var listeMotsClefs = JSON.parse(localStorage.getItem("cassos"));
  242.     var motClefInput = document.getElementById("les_motsclefs").value;
  243.     var index = listeMotsClefs.indexOf(motClefInput);
  244.     listeMotsClefs.splice(index, 1);
  245.     var jsonify = JSON.stringify(listeMotsClefs);
  246.     localStorage.setItem('motsclefs', jsonify);
  247.     afficherMotsClefs();
  248. }
  249. var retirerMotClefButton = cassosManagerDiv.querySelector("#removemotclef");
  250. retirerMotClefButton.addEventListener("click", retirerMotClef, true);
  251.  
  252. //Afficher tous les mots-clés dans la liste
  253. function afficherMotsClefs()
  254. {
  255.     var divListeMotsClefs = document.getElementById("les_motsclefs");
  256.     while(divListeMotsClefs.firstChild){
  257.         divListeMotsClefs.removeChild(divListeMotsClefs.firstChild);
  258.     }
  259.     var listeMotsClefs = JSON.parse(localStorage.getItem("motsclefs"));
  260.     listeMotsClefs.forEach(afficherUnMotClef);
  261. }
  262. function afficherUnMotClef(motclef)
  263. {
  264.     var cassosHandled = document.createElement('option');
  265.     cassosHandled.setAttribute("value", motclef);
  266.     cassosHandled.innerHTML = motclef;
  267.     document.getElementById("les_motsclefs").appendChild(cassosHandled);
  268. }
  269. afficherMotsClefs();
  270.  
  271.  
  272.  
  273.  
  274.  
  275.  
  276.  
  277.  
Add Comment
Please, Sign In to add comment