mardi 17 février 2009

Rechercher sur wikio avec Ubiquity


Suivre l'actualité est une part importante de notre activité sur le Web (en tout cas c'est une part importante de mon activité).
J'utilise naturellement le site wikio pour suivre les grosses actus du jour, les débats qui enflamment la blogosphère, des sujets plus pointus et pour faire des recherches ponctuelles.
Afin de faciliter l'accès aux pages de ce site, j'ai développé une commande Ubiquity qui permet de lancer une recherche sur l'un des sites wikio.
Si vous ne connaissez pas cet outil, je vous invite à l'installer et à le tester (c'est un plugin firefox). Il ne tardera pas à devenir une référence en terme de navigation et de mashup.
Si vous ne connaissez pas wikio, je vous invite aussi à visiter et à utiliser le site.

Voici le code commenté de la commande Ubiquity que vous je vous invite à installer et à utiliser !










// definition d'un noun_type pour faire de la suggestion de nom de pays
// (plus precisement d'extension de nom de domaine)
var noun_type_country = {
  _name: "country",
  suggest: functiontext, html ) {
    var availableSuggestions  = ["com""co.uk""de""es""fr""it"];
    var suggestions  = [];
    
    for (var i = 0; i < availableSuggestions.length; i++) {
      if (availableSuggestions[i].indexOf(text== 0) {
        suggestions.push(CmdUtils.makeSugg(availableSuggestions[i]) );
      }
    }
  
    if (suggestions.length == 0) {
      suggestions.push(CmdUtils.makeSugg(text));
    }
  
    return suggestions;
  }
}

// la commande en elle-meme
CmdUtils.CreateCommand({
    // le nom de la commande
  name: "wikio-search",
  // le parametre initial de la commande
  takes: {"what": noun_arb_text},
  // le parametre additionnel de la commande : on demande un nom de pays
  modifiers: {"in": noun_type_country},

    // la page de presentation de la commande
  homepage: "http://meekio.blogspot.com/2009/02/rechercher-sur-wikio-avec-ubiquity.html",
  // informations sur l'auteur de la commande, votre serviteur
  author: {name: "Jerome Defillon", homepage: "http://meekio.blogspot.com/"},
  // license
  license: "LGPL",
  icon: "http://www.wikio.com/favicon.png",


    // une petite fonction pour gerer des entrees de pays
    // qui ne sont pas acceptees a priori mais qui risquent
    // d'etre saisies par l'utilisateur
  _tld: function(country) {
    if (country == 'us')
      return 'com';
    if (country == 'gb')
      return 'co.uk';
    if (country == 'uk')
      return 'co.uk';

    return country;
  },

  // preview de la commande
  preview: functionpblock, what, mods ) {
    var msg = 'Search "${whatText}" in www.wikio.${inText}';
    var subs = {whatText: what.text, inText: this._tld(mods["in"].text)};
    
    pblock.innerHTML = CmdUtils.renderTemplatemsg, subs );
  },

  // execution de la commande
  execute: function(what, mods ) {
      // url demandee
    var url = "http://www.wikio.{TLD}/search/{WHAT}"
    // requete renseignee
    var urlString = url.replace("{TLD}", mods["in"].text).replace("{WHAT}", what.text);
    // on charge la page demandee
    Utils.openUrlInBrowser(urlString);
  }
  
});





1 commentaires:

Jean Véronis a dit…

excellent !

suggestion : mettre un tld par défaut pour ne pas avoir à taper à chaque fois "in fr" si c'est la recherche qu'on fait la plupart du temps