Come ti scrivo un bookmarlet per tntvillage

!!EDIT!!!!EDIT!![E MO BASTA!!]

Dato che alcuni siti che uso sono cambiati devo aggiornare i miei bookmarlet, trovare il codice aggiornato e qualche esempio qui : https://github.com/kidpixo/bookmarklets

!!EDIT!!!!EDIT!!

Un utente tnt mi ha fatto notare come trascinare il link non funzioni dato che wordpress traduce le funzioni javascript in link relativi al mio blog!

Per poter far funzionare lo script c’e’ bisongo di un passo in piú:

Screen Shot 2013-01-09 at 10.44.50 AM

Editare il bookmark (in Chrome)

  • editate il bookmark incollando direttamente questo codice al posto del link SENZA aggiungere spazi, a capo etc etc:
javascript:(function(){(function%20tnt_savetorrent_scrollend_opentextarea(){document_links=document.links;for(index=0;index%3Cdocument_links.length;index++){if(document_links[index].toString().indexOf(%22act=Attach%22)%3E=0){window.open(document_links[index].toString()+'%26target=%22_blank%22','Download');index=document_links.length}}window.scrollTo(0,document.body.scrollHeight);ShowHide('qr_open','qr_closed');})();})();

Se non visualizzate bene il codice copiatelo da questa pagina.

Screen Shot 2013-01-09 at 10.45.03 AM

Incollare il codice qui sotto nel bookmark (in Chrome)

Enjoy!

La nuova versione dello script ha queste novitá:

  • la pagine attuale rimane aperta dopo lo scaricamento
  • si é riportati al fondo alla pagina della release e viene aperto il riquadro per la risposta rapida (bisogna essere loggati per questo)

Buon divertimeto!

PS: per chi usa Chrome consiglio la lettura di questo mio post Scorciatoie da tastiera,Chrome, motori di ricerca custom e Instapaper, potrebbe velocizzarvi il flusso di lavoro, migliorarvi la giornata e  l’alito.

!!EDIT!!

Ciao a tutti e buon anno!

Per quelli che non hanno voglia di leggere fino in fondo, basta trascinare/salvare questo link nella barra dei preferiti per poter usare il bookmarlet. In pratica quando siamo su una pagina di tntvillage.scambioetico.org con un link a un file torrent, questo bookmarklet scarica il file torrent direttamente. Tra l’altro questo chiude anche la pagina attuale, lo sto modificando per puntare alla fine della pagina e aprire la form per ringraziare :-D

Il codice é stato testato solo su Chrome 23.0.1271.101, su altri browser (in particolare IE) non garantisco niente!

Oggi vi racconto come ho messo insieme un efficiente bookmarklet per automatizzare operazioni di routine.
Per efficiente intendo che fa quello che mi serve, l’ottimizzazione é ancora un utopia a causa della mia ignoranza del linguaggio utilizzato. Infatti ho questa brutta abitudine di imbarcarmi in avventure di cui so qualcosa per poi perdere mille volte più tempo che rispetto al normale imparo una cosa/la uso. Ma andiamo per passi.

Definizioni:

bookmark: letteralmente, segnalibro. Viene utilizzato per salvare l’indirizzo di una pagina web per poterla recuperare in seguito, da alcuni noto come “Favoriti”, non é ne più ne meno che un indirizzo sul web (o URL). Normalmente si trovano sul computer, ma la pervasivitá della rete ha visto la nascita di sistemi online di archiviazione (io uso delicious.com) o sistemi per la sincronizzazione tra macchine diverse (Chrome sincronizza attraverso gli account gmail, iOs di Apple utilizza il suo iCloud).

bookmarklet: è un piccolo programma JavaScript che può essere memorizzato come un normale URL all’interno dei segnalibri (bookmark in inglese) nei browser Web più popolari, o all’interno degli hyperlinks di una pagina Web. I bookmarklet sono anche detti favletso favelets per via del fatto che Internet Explorer utilizza il termine “Favorites” (preferiti in italiano) per indicare appunto i segnalibri. Lo scopo dei bookmarklet è di poter dare agli utilizzatori un metodo pratico ed immediato per eseguire una determinata operazione ( ad esempio utilizzare un servizio web, o svolgere una specifica operazione sulla pagina che si sta visitando ); l’operazione effettuata normalmente è legata al sito che rilascia il bookmarklet, ed è una semplice scorciatoia per utilizzare i servizi web offerti dal sito che ha sviluppato il bookmarklet (fonte wikipedia)

Ora, a me serviva uno script che pescasse nella pagina attuale il primo link contenente una stringa predefenita. Dato che il numero di link é variabile non posso semplicemente definire quale prendere dal suo indice, per cui devo eseguire un ciclo, controllare link per link e bloccare il ciclo quando il risultato é positivo.

Variando la stringa, può essere usato per scaricare il primo file PDF linciato nella pagina, immagine e così via.

Ecco il codice:

javascript:document_links=document.links;
  for(index=0; index<document_links.length; index++){
    if (document_links[index].toString().indexOf("act=Attach") >= 0){
       window.open(document_links[index].toString()+'&target="_blank"','Download');
       index=document_links.length
    }
  };
void(close())

É fondamentalmente composto da un ciclo lungo tanto quanti link sono presenti nella pagina, per ognuno viene controllato se la stringa “act=Attach” é presente, nel qual caso incrementa il contatore oltre il limite fermando di fatto il ciclo a quell’iterazione. Per uno che non conosce javascript é un bel risultato, anche se non molto elegante!

Per poter essere salvato come bookmark il codice deve essere su una linea e alcuna caratteri vanno sostituiti con i loro equivalenti nella codifica per le URL (lo spazio per esempio si rappresenta con %20 e così via). Ecco come appare alla fine:

javascript:(function(){document_links=document.links;for(index=0;index%3Cdocument_links.length;index++){if(document_links[index].toString().indexOf(%22act=Attach%22)%3E=0){window.open(document_links[index].toString()+'%26target=%22_blank%22','Download');index=document_links.length}};void(close())})();

Per poterlo usare basta trascinare/salvare questo link nella barra dei preferiti.

Annunci

Rispondi

Inserisci i tuoi dati qui sotto o clicca su un'icona per effettuare l'accesso:

Logo WordPress.com

Stai commentando usando il tuo account WordPress.com. Chiudi sessione / Modifica )

Foto Twitter

Stai commentando usando il tuo account Twitter. Chiudi sessione / Modifica )

Foto di Facebook

Stai commentando usando il tuo account Facebook. Chiudi sessione / Modifica )

Google+ photo

Stai commentando usando il tuo account Google+. Chiudi sessione / Modifica )

Connessione a %s...