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 13/06/2012, 16:36] – [Créer une loupe Unity] Deuchnord | 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]] |