Bon, on ne va pas se mentir, on est tous le fâcheux d’un autre. Certains le sont plus que d’autres.
Je ne sais plus qui ici avait émis l’idée d’une extension du forum pour ignorer un utilisateur.
Mais quelle bonne idée ! Alors ça a fait tilt dans mon cerveau fatigué et plutôt que de faire
ce pourquoi on me paye j’ai dépensé une heure de temps (et perdu quelques cheveux dans
l’affaire) rien que pour vous mes amis. À l’aide de mes souvenirs lointains de Javascript du
siècle dernier, je vous propose l’extension LES FÂCHEUX DE TRIC TRAC ! Elle est pas belle la vie ?
Comment ça marche ? Rien de plus simple (ou pas).
D’abord, installer GreaseMonkey pour Firefox. Ensuite, cliquer sur l’icône du singe et choisir
« New user script ».
Ensuite, effacer le contenu de l’onglet qui apparaît et copier/coller le code du bas de ce post.
Cliquer sur l’icône en forme de disquette sur la gauche pour sauver. Puis, se rendre dans le
forum de tric trac.
Si tout s’est bien passé, une entrée « Configurer les fâcheux » est apparue dans le menu utilisateur
(tout en haut à droite de la page). Vous n’avez plus qu’à saisir une liste de fâcheux que vous ne
souhaitez plus voir, séparés par des virgules. Pas besoin de mettre le nom entier. Il vous suffit de
taper « Lymon » et, magie, vous n’entendrez plus parler de cet imbécile.
Plus qu’à recharger la page et toutes les contributions des fâcheux concernés (et celles qui les citent)
disparaissent. C’est assez frustre pour le moment, je ne compte pas passer trop de temps pour faire
mieux, ça répond au besoin dirais-je.
Faites-en ce que vous voulez, c’est du domaine public !
// ==UserScript==// @name Les facheux de Tric Trac// @version 1// @include https://.trictrac.net/// @require https://openuserjs.org/src/libs/sizzle/GM_config.js// @grant GM_getValue// @grant GM_setValue// ==/UserScript==GM_config.init({ ‘id’: ‘Les_Facheux’, // The id used for this instance of GM_config ‘title’: ‘Configuration des fâcheux de Trictrac’, ‘fields’: // Fields object { ‘facheux’: // This is the id of the field { ‘label’: ‘Les fâcheux (séparer par une virgule)’, ‘type’: ‘text’, ‘default’: ‘’ } }});var usermenu = document.getElementsByClassName(“user”) [ 0 ];for ( var userentry of usermenu.getElementsByTagName(‘ul’) ){ var li = userentry.appendChild ( document.createElement ( ‘li’ ) ); li.className = ‘is-submenu-item is-dropdown-submenu-item’; var a = li.appendChild ( document.createElement ( ‘a’ ) ); a.innerHTML = ‘Configurer les fâcheux’; a.onclick = function(e) { GM_config.open(); };}var posts = document.getElementsByClassName(“post”);for ( var i = 0 ; i < posts.length ; i++ ){ var post = posts*; var authors = post.getElementsByClassName ( “author” ); for ( var author of authors ) { author = author.textContent; var content = post.textContent; console.log ( GM_config.get(‘facheux’) ); for ( var facheux of GM_config.get(‘facheux’).split(‘,’) ) { console.log ( 'Facheux: ’ + facheux ); var parUnFacheux = author.includes ( facheux.trim() ); if ( facheux.trim() && ( parUnFacheux || content.includes ( facheux.trim() ) ) ) { for ( var elt of post.children ) if ( parUnFacheux || elt.className != ‘avatar’ ) elt.style.display = ‘none’; var newpost = post.appendChild(document.createElement(‘blockquote’)); newpost.className=“content facheuxbutton”; if ( parUnFacheux ) { newpost.innerHTML = 'Contribution d'un fâcheux … '; var aAvatar = post.insertBefore ( document.createElement ( ‘a’ ), post.firstChild ); aAvatar.className = ‘facheux avatar’; var newAvatar = aAvatar.appendChild ( document.createElement ( ‘img’ ) ); newAvatar.src= “https://cdn2.trictrac.net/documents/formats/thumb_100_100/documents/originals/81/97/39fb617f9a465093fe1e592b4b36832c7f75.jpeg”; newAvatar.width=40; newAvatar.height=40; } else newpost.innerHTML = ‘Cet utilisateur cite un fâcheux …’; var button = newpost.appendChild(document.createElement(‘a’)); button.innerHTML = “Montrer quand même ?”; button.onclick = function(e) { for ( var elt of e.target.parentNode.parentNode.childNodes ) { console.log ( elt ); if ( elt.className && elt.className.includes ( ‘facheux’ ) ) elt.parentNode.removeChild(elt); else if ( elt.style ) elt.style.display = null; } }; } } }}