Différences
Ci-dessous, les différences entre deux révisions de la page.
| Les deux révisions précédentesRévision précédenteProchaine révision | Révision précédente | ||
| precise-creer-unity-lens [Le 21/02/2013, 13:31] – ajout tags 80.13.73.109 | precise-creer-unity-lens [Le 07/06/2017, 14:01] (Version actuelle) – tag, et note intro L'Africain | ||
|---|---|---|---|
| Ligne 1: | Ligne 1: | ||
| + | {{tag> | ||
| + | ====== Créer une loupe Unity ====== | ||
| + | <note warning> | ||
| + | Le Dash Unity propose une manière simple et conviviale de visionner du contenu intéressant. À l'aide des Loupes, il est désormais possible de rechercher une information en local et sur le Web. Dans cet article, nous apprendrons à construire facilement une loupe permettant de chercher confortablement un article de Wikipédia, directement depuis votre Bureau. | ||
| + | |||
| + | <note tip>Il est recommandé d' | ||
| + | Vous pouvez suivre [[http:// | ||
| + | |||
| + | ===== Prérequis ===== | ||
| + | Pour suivre ce tutoriel, vous aurez besoin de : | ||
| + | * [[precise|Ubuntu 12.04]] (ou version ultérieure: | ||
| + | |||
| + | ===== Créer la loupe Wikipédia ===== | ||
| + | La création d'une loupe commence par une étape très simple. Ouvrez un terminal et invoquez les commandes suivantes : | ||
| + | < | ||
| + | cd wikipedia | ||
| + | quickly edit</ | ||
| + | La dernière ligne de code ouvre Gedit avec trois fichiers. Nous ne nous occuperons que de ''< | ||
| + | |||
| + | Si vous préférez éditer votre projet avec votre éditeur préféré ou un IDE il vous suffit de remplacer les lignes ci dessus par les suivantes : | ||
| + | |||
| + | < | ||
| + | cd wikipedia/ | ||
| + | emacs __init__.py</ | ||
| + | |||
| + | en remplaçant emacs par votre éditeur préféré . | ||
| + | |||
| + | La première chose que nous verrons est la classe Meta. Elle définit le comportement de la loupe : | ||
| + | < | ||
| + | class Meta: | ||
| + | name = ' | ||
| + | description = ' | ||
| + | search_hint = ' | ||
| + | icon = ' | ||
| + | search_on_blank=True | ||
| + | </ | ||
| + | La plupart du temps, lorsque vous créez une loupe simple, il n'est pas nécessaire d'y changer quoi que ce soit. C'est le cas ici. | ||
| + | |||
| + | Une loupe doit faire partie d'une ou plusieurs catégories, | ||
| + | |||
| + | En-dessous de la classe Meta, vous pouvez voir ceci : | ||
| + | < | ||
| + | example_category = ListViewCategory(" | ||
| + | </ | ||
| + | Modifions-la pour qu' | ||
| + | - Renommez la variable en '' | ||
| + | - Nous devons choisir entre '' | ||
| + | - Nous devons donner à notre catégorie un nom d' | ||
| + | - Pour finir, il faudra une icône pour l' | ||
| + | |||
| + | < | ||
| + | articles_category = ListViewCategory(" | ||
| + | </ | ||
| + | |||
| + | Maintenant que l' | ||
| + | < | ||
| + | def search(self, | ||
| + | # TODO: Add your search results | ||
| + | results.append(' | ||
| + | ' | ||
| + | self.example_category, | ||
| + | " | ||
| + | 'Learn More', | ||
| + | 'Find out how to write your Unity Lens', | ||
| + | ' | ||
| + | pass | ||
| + | </ | ||
| + | ...sauf que nous, on veut des résultats provenant de Wikipédia ! | ||
| + | ===== Chercher sur Wikipédia ===== | ||
| + | Créons une nouvelle fonction permettant la recherche Wikipédia, que nous incorporerons ensuite dans le code. | ||
| + | |||
| + | Nous la nomerons '' | ||
| + | |||
| + | Au début du fichier, ajoutez ceci : | ||
| + | < | ||
| + | import urllib2 | ||
| + | import simplejson | ||
| + | </ | ||
| + | Ensuite, dans la classe '' | ||
| + | < | ||
| + | wiki = " | ||
| + | </ | ||
| + | Puis créez la fonction : | ||
| + | < | ||
| + | def wikipedia_query(self, | ||
| + | </ | ||
| + | L' | ||
| + | < | ||
| + | search = search.replace(" | ||
| + | </ | ||
| + | Créons maintenant la requête en utilisant l'API Opensearch de Wikipédia : | ||
| + | < | ||
| + | url = (" | ||
| + | </ | ||
| + | Et stockons les résultats renvoyés dans une variable '' | ||
| + | < | ||
| + | results = simplejson.loads(urllib2.urlopen(url).read()) | ||
| + | </ | ||
| + | Insérons une ligne de debug. Il s'agit d'un texte qui sera lisible si le script est ouvert dans une console. | ||
| + | < | ||
| + | print " | ||
| + | </ | ||
| + | Nous finissons la fonction en lui faisant retourner quelque chose : | ||
| + | < | ||
| + | |||
| + | Notre fonction '' | ||
| + | < | ||
| + | try: | ||
| + | search = search.replace(" | ||
| + | url = (" | ||
| + | results = simplejson.loads(urllib2.urlopen(url).read()) | ||
| + | print " | ||
| + | return results[1] | ||
| + | except (IOError, KeyError, urllib2.URLError, | ||
| + | print "Error : Unable to search Wikipedia" | ||
| + | return []</ | ||
| + | |||
| + | **Dès lors, tout ce que nous aurons à faire est de « brancher » cette nouvelle fonction à la fonction '' | ||
| + | < | ||
| + | def search(self, | ||
| + | for article in self.wikipedia_query(search): | ||
| + | results.append(" | ||
| + | " | ||
| + | self.articles_category, | ||
| + | " | ||
| + | article, | ||
| + | " | ||
| + | " | ||
| + | pass | ||
| + | </ | ||
| + | On pourrait traduire ce code par : « À chaque résultat renvoyé par la fonction '' | ||
| + | Ce qui se passe dans '' | ||
| + | < | ||
| + | results.append (url, | ||
| + | icon, | ||
| + | category, | ||
| + | mime-type, | ||
| + | text, | ||
| + | comment, | ||
| + | drag and drop url) | ||
| + | </ | ||
| + | C'est tout, votre loupe est prête ! | ||
| + | |||
| + | ===== Utiliser votre loupe ===== | ||
| + | Vous pouvez maintenant faire apparaître votre loupe dans le Dash en tapant la commande suivante dans le Terminal : | ||
| + | < | ||
| + | ...et le démarrer en tapant : | ||
| + | < | ||
| + | File " | ||
| + | from wikipedia import WikipediaLens | ||
| + | File "/ | ||
| + | SyntaxError: | ||
| + | {{http:// | ||
| + | Il fait ce qu'il a à faire, c'est bien, voyons maintenant comment l' | ||
| + | |||
| + | ===== Installer Définitivement votre loupe ===== | ||
| + | L' | ||
| + | * Allez dans le répertoire contenant votre loupe et tapez : | ||
| + | < | ||
| + | Si tout ce passe bien vous devriez voir afficher : | ||
| + | < | ||
| + | .......................................................................................................................................Le paquet Ubuntu a été crée avec succès en tant que ../ | ||
| + | </ | ||
| + | Si vous avez l' | ||
| + | < | ||
| + | Command returned some WARNINGS: | ||
| + | ---------------------------------- | ||
| + | WARNING: the following files are not recognized by DistUtilsExtra.auto: | ||
| + | | ||
| + | ---------------------------------- | ||
| + | Do you want to continue (this is not safe!)? y/[n]: y | ||
| + | </ | ||
| + | Il vous suffit de retirer tous les fichiers (ici " | ||
| + | *La seconde étape est d' | ||
| + | L' | ||
| + | < | ||
| + | |||
| + | Et voila votre loupe est installer dans le dash unity. | ||
| + | |||
| + | |||
| + | ===== Améliorons notre loupe ! ===== | ||
| + | ==== Changer la méthode d' | ||
| + | D' | ||
| + | <code python> | ||
| + | articles_category = IconViewCategory(" | ||
| + | </ | ||
| + | ==== Rendre la loupe multilingue ==== | ||
| + | Ensuite, vous aurez remarqué que seuls les résultats francophones sont affichés (du moins si ce tutoriel a été correctement adapté :P), ce qui est bien… si vous êtes sûr(e) que tous les utilisateurs de votre loupe parlent français ! Essayons de corriger cela en récupérant la langue de la session de l' | ||
| + | En haut de votre fichier, commencer par ajouter cette ligne : | ||
| + | <code python> | ||
| + | import locale | ||
| + | </ | ||
| + | Ensuite, dans la classe main, au-dessus de la variable '' | ||
| + | <code python> | ||
| + | locale.setlocale(locale.LC_MESSAGES, | ||
| + | loc = locale.getlocale(locale.LC_MESSAGES)[0].split(" | ||
| + | </ | ||
| + | '' | ||
| + | Modifions notre variable '' | ||
| + | <code python> | ||
| + | wiki = " | ||
| + | </ | ||
| + | Et si nous redémarrons notre loupe... | ||
| + | |||
| + | {{http:// | ||
| + | Les résultats traduits dans votre langue, comme on l' | ||
| + | |||
| + | ===== Conclusion ===== | ||
| + | Ce tutoriel a permis de montrer la facilité avec laquelle on peut créer une loupe pour le Dash Unity, enrichissant ainsi l' | ||
| + | |||
| + | ===== Crédits ===== | ||
| + | Ce tutoriel est traduit et adapté de l' | ||
| + | |||
| + | Si vous remarquez une erreur, n' | ||
| + | |||
| + | ===== Voir aussi ===== | ||
| + | * [[unity|Unity : la nouvelle interface de bureau d' | ||
| + | * [[unity-lens|Unity lens : les loupes (ou lentilles) de Unity]] | ||
