Da utente che sa come funziona il dietro le quinte dei siti web spesso mi trovo a pensare in termini di DOM e javascript, sopratutto quando c’è qualcosa di frustrante nella mia esperienza utente.
Per esempio: nella maggior parte dei siti di streaming occorre affrontare una corsa ad ostacoli tra pop up, pop under, finti player e banner porno. Alla terza volta che ho dovuto eseguire la stessa sequenza di click ho convenuto che per la mia sanità mentale fosse più conveniente scriptare il tutto.
Uno a caso, rapidvideo: questo mini-script è sufficiente a saltare la prima pagina e chiudere la pubblicità che fa ostruzionismo sul player:
var button = document.getElementById("proceed_to"); if(button) button.form.submit(); else document.getElementById("hidiv").style.display = 'none';
Purtroppo sono poche le volte in cui è conveniente aprire la console javascript e scrivere codice di sana pianta (o comunque andarlo a recuperare da qualche parte). Qui entra in gioco un estensione content-script, ovvero un tipo di estensione di Google Chrome che lancia determinati script in base alla pagina che stiamo visitando. Tali script sono eseguiti nel contesto della pagina e possono quindi accedere e manipolare il DOM. (Chrome-doc)
Creare questo tipo di estensione è molto semplice: occorre inserire in una cartella dedicata tutti gli script da eseguire ed il file manifest.json che stabilisce quando eseguirli. Per esempio:
{ "manifest_version": 2, "name": "MyScripts", "description": "Make life easier", "version": "1.0", "content_scripts": [ { "matches": ["http://www.rapidvideo.tv/*"], "js": ["rapidvideo.js"] }, { "matches": ["http://www.vidto.me/*"], "js": ["vidto.js"] }, { "matches": ["http://www.fastvideo.eu/*"], "js": ["fastvideo.js"] } ] }
Tutti i campi sono abbastanza intuitivi e banali, l’unico interessante è content_script, mediante il quale avviene l’associazione tra url e script da lanciare.
Una volta creato il manifest e gli script è sufficiente andare sulla pagina delle estensioni (chrome://extensions), abilitare la modalità sviluppatore ed aggiungere la propria estensione.