Mon premier script ubiquity

Depuis pas mal de temps, j'avais dans la tête de créer un script ubiquity. Pour mon premier, je vous passe les tests des différents exemples du wiki , je cherchais une fonctionnalité intéressante et qui n'était pas encore fait - il y en a déjà un paquet. Vu que je commande pas mal en ligne et suit sur le site coliposte le cheminement de mon colis, j'ai eu l'idée d'automatiser cette dernière. Après une sélection de mon numéro de colis, il n'y a plus qu'à lancer la commande coliposte et hop c'est parti :-)

Pour ceux qui ne connaissent pas - il y en a ??? - vous pouvez consulter le site officiel ou le billet de tristan nitot sur son blog. Pour faire bref, cette extension firefox permet de voir le navigateur autrement en permettant une interaction de type ligne de commande. Autant vous dire qu'il faut être a priori informaticien pour saisir la finesse et la grandeur de ce genre d'outils :-D.

Pour trouver la bonne URL, j'ai utilisé une autre extension de firefox : firebug

Un exemple d'utilisation

ubiquity.png

Le code

CmdUtils.CreateCommand({
  name: "coliposte",
 takes: {"Votre numero de colis": noun_arb_text},
    _getColiposteInfo: function( num_colis ) {
    var coliposteUrl = "http://coliposte.net/gp/servlet?";
    var params = {
      id: num_colis + "_desc_0",
      width:"280"
    };
    displayMessage("checking coliposte website") ;
    return coliposteUrl + jQuery.param( params );
  },
  
  preview: function( pblock, num_colis ) {
    var msg = "Inserts the shipment information: <br/>";
    msg += "<img src='%s'/>".replace( /%s/, this._getColiposteInfo(num_colis.text) );
    pblock.innerHTML = msg;
  },
  
  execute: function( num_colis ) {
    CmdUtils.getImageSnapshot( this._getColiposteInfo(num_colis.text), function(imgData) {
      CmdUtils.setSelection( "<img src='" + imgData +"'/>");
    })
  }
})

je ne connais rien du tout en javascript/ecmascript et consort. Donc ne vous étonnez pas que le code soit un peu pourri. Je me suis inspiré des nombreux exemples du wiki. La seule difficulté que j'ai rencontré est la non présence d'un débogueur. Pour une buse comme moi en javascript, ça m'aurait un peu aidé.

Vus : 257
Publié par Littlewing : 368