giuliop_pastebin

HWUpgrade - Anti mosche tze-tze

Aug 10th, 2021 (edited)
238
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. // ==UserScript==
  2. // @name     HWUpgrade - Anti mosche tze-tze
  3. // @version  1.02
  4. // @grant    none
  5. // @include  https://www.hwupgrade.it/forum/showthread.php*
  6. // @include  https://www.hwupgrade.it/forum/newreply.php*
  7. // @run-at   document-start
  8. // ==/UserScript==
  9.  
  10. /*
  11.  
  12. Questo script implementa una versione avanzata della funzione "ignore", per eliminare gli utenti estremamente fastidiosi
  13.  
  14. Istruzioni:
  15. - Installare Violentmonkey (https://violentmonkey.github.io/get-it/) o equivalente (e.g. Greasemonkey, Tampermonkey)
  16. - Creare un nuovo script; nel caso di Violentmonkey, fare click sull'icona con la faccia di scimmia nella barra del browser e premere il grosso segno '+'
  17. - Incollare questo script
  18. - Modificare la lista delle mosche tze-tze (variabile "flies"): ogni nome deve essere racchiuso fra virgolette
  19. - Impostare il livello di annientamento (variabile "killLevel") secondo il proprio gusto; vedere sotto per la descrizione di ogni livello
  20. - Salvare facendo click su "Save", in alto a dx
  21. - Caricare pagine del forum di HWUpgrade e schiacciare mosche a più non posso!
  22. */
  23.  
  24. // Testo da cercare per riconoscere le parti della pagina - NON MODIFICARE!
  25. const QUOTE_ID = "Originariamente inviato da";
  26. const MEMBER_ID = "member.php";
  27. const MSG_ID = "Messaggio";
  28.  
  29. // Livelli di annientamento delle mosche - NON MODIFICARE!
  30. const LEVEL_SWATTER = 1; // Paletta per le mosche (minimale): rimuove i post delle mosche tze-tze (che siano in "ignore" o meno)
  31. const LEVEL_DDT = 2;     // DDT (consigliato): come la paletta, ma sostituendo un ronzio alle citazioni delle mosche da parte degli utenti non mosche
  32. const LEVEL_KABOOM = 3;  // KA-BOOM! (drastico, ma quanno ce vo', ce vo'): come la paletta, ma rimuove completamente anche i post che citano le mosche
  33.  
  34. // Stringhe da sostituire nei messaggi di altri utenti che citano le mosche - modificare a proprio piacimento
  35. const FLY_DESC = "Una fastidiosa mosca"; // Stringa da sostituire al nome della mosca; lasciare vuota per vedere il nickname della mosca
  36. const FLY_BUZZ = "bzzz bzzz bzzz"; // Stringa da sostituire al testo della mosca
  37.  
  38. // Array di nomi di mosche tze-tze da annientare - modificare a proprio piacimento
  39. // Esempio del caso di un solo utente: let flies = ['nickname'];
  40. let flies = ['Forrest78','canislatrans','nickname89-1'];
  41.  
  42. // Livello annientamento dei post delle mosche tze-tze - impostare il livello desiderato
  43. let killLevel = LEVEL_DDT;
  44.  
  45. function hideElement( e) { e.style.display = "none"; }
  46.  
  47. const IS_REPLYING = (document.URL.indexOf("newreply") != -1);
  48.  
  49. function callback( mutations)
  50. {
  51.     for( const mutation of mutations)
  52.         for( const node of mutation.addedNodes)
  53.             if( node instanceof Element)
  54.                 if( node.tagName == "A" && !IS_REPLYING && node.href.indexOf( MEMBER_ID) != -1 ||
  55.                     node.tagName == "TD" && IS_REPLYING && node.className == "alt1" ||
  56.                     node.tagName == "STRONG" && node.parentElement.tagName == "DIV" &&
  57.                         node.parentElement.textContent.indexOf( QUOTE_ID) != -1 && killLevel >= LEVEL_DDT)  
  58.                     for( const fly of flies)
  59.                         if( node.textContent == fly)
  60.                         {
  61.                             let flyPoop = node;
  62.                          
  63.                             if( flyPoop.tagName == "STRONG" && killLevel == LEVEL_DDT)
  64.                             {  
  65.                                 hideElement( flyPoop.nextElementSibling);
  66.                                                          
  67.                                 if( FLY_DESC)
  68.                                     flyPoop.textContent = FLY_DESC;
  69.                              
  70.                                 flyPoop.parentElement.nextElementSibling.textContent = FLY_BUZZ;  
  71.                             }
  72.                             else
  73.                             {
  74.                                 if( !IS_REPLYING)
  75.                                     while( flyPoop.tagName != "DIV" || flyPoop.className != "page")
  76.                                          flyPoop = flyPoop.parentElement;
  77.                                 else // replying
  78.                                 {                              
  79.                                     while( flyPoop.tagName != "TR" || flyPoop.title.indexOf( MSG_ID) == -1)
  80.                                         flyPoop = flyPoop.parentElement;
  81.                                  
  82.                                     hideElement( flyPoop.previousElementSibling);
  83.                                 }
  84.                              
  85.                                 hideElement( flyPoop);
  86.                             }
  87.                         }              
  88. }
  89.  
  90. var observer = new MutationObserver( callback);
  91.  
  92. observer.observe( document, {childList: true, subtree: true});
  93.  
RAW Paste Data