17
mai
'13

Marre des tweets promo dans votre Timeline ?

Publié le 17 mai 2013

Les tweets «promoted» de Twitter sont des tweets publicitaires (ou presque) que Twitter affiche dans votre Timeline en fonction de vos goûts, passions ou autres détails de votre vie que vous voulez bien lui donner. Accessoirement, cela rend votre Timeline Twitter un brin illisible, et dans certains cas cela peut devenir irritant. N'étant pas un fan de ce type de pratique, j'ai trouvé une solution toute simple pour résoudre ce problème.

GreaseMonkey FTW

J'avais déjà lors de quelques pentests eu recours à GreaseMonkey pour manipuler des codes Javascript un brin hardcore, et j'en avais été pleinement satisfait. Pour faire court, GreaseMonkey est une extension disponible sur pas mal de navigateurs permettant de manipuler en «live» le code de la page, en toute transparence. Autrement dit, vous pouvez appliquer des transformations autant sur le contenu HTML que le code Javascript voire même les styles employés par une page. Cette extension nécessite sur Firefox une installation, mais à ma grande surprise elle est intégrée par défaut dans Chromium, l'alternative libre du navigateur Chrome de Google ! Et ça, eh bien ça n'a pas de prix.

GreaseMonkey (GM) se base sur des scripts Javascripts contenant des métadonnées (description du script, auteur, etc ...) mais aussi du code actif. Le script est chargé selon un modèle d'URL (contenu dans les métadonnées), et peut agir avant ou après le lancement du Javascript sur la page. Autrement dit, on peut faire tout et n'importe quoi avec GM. Enfin, surtout n'importe quoi. Il existe des scripts pour relooker Twitter, pour ajouter des fonctionnalités, pour modifier des comportements de site, etc ... Vous pourrez d'ailleurs en trouver plein sur le site userscripts.org.

And now, ladies and gentlemen, "le" script !

Vous vous attendiez à un script de fou ? A un code intégrant des gros hacks et tout et tout ? Vous allez être déçus. Tout simplement parce que les éléments "promoted" de Twitter possèdent un style qui leur est propre, comme promoted-tweet, promoted-account ou promoted-trend.

La solution: forcer leur disparition à grand coup de CSS et de display: none. Pas moins que cela. Pour réaliser cette modification de manière automatique, j'ai codé en quelques minutes le script suivant:

// ==UserScript==
// @author          Damien "virtualabs" Cauquil
// @name            Promote Me Not
// @namespace       http://virtualabs.fr/pmn/
// @icon            http://virtualabs.fr/pmn/pmn.png
// @icon64          http://virtualabs.fr/pmn/pmn.png
// @updateURL       http://virtualabs.fr/pmn/pmn.user.js
// @version         1.1
// @description     Remove Twitter's promoted tweets from your TL
// @match           http://*.twitter.com/*
// @match           https://*.twitter.com/*
// @grant           GM_addStyle
// @licence         (CC) Attribution Share Alike (CC-BY-SA)
// @resource icon   /pmn/pmn.png
// ==/UserScript==

/* Install some neat CSS rules */
GM_addStyle(".promoted-tweet * display: none * .promoted-trend * display: none * .promoted-account * display: none *");

Le script est téléchargeable à cette addresse et peut être installé automatiquement via un glisser-déposer dans Chromium (faites un glisser/déposer du fichier dans la liste des extensions, menu "Paramètres" onglet "Extensions"), ou via l'extension GreaseMonkey sous Firefox et autres navigateurs compatibles. En espérant que cela vous rende la vie plus belle et plus joviale.



Les contenus disponibles sur ce blog sont publiés sous licence Creative Commons BY-NC-SA.
Vous pouvez réutiliser tout ou partie de ces contenus à condition de citer l'auteur et l'origine, vous ne pouvez en faire une utilisation commerciale, et enfin vous devez partager tout travail ou œuvre dérivée sous les mêmes conditions — c'est-à-dire avec la même licence d'utilisation Creative Commons.