Différences
Ci-dessous, les différences entre deux révisions de la page.
Les deux révisions précédentes Révision précédente Prochaine révision | Révision précédente | ||
precise-creer-unity-lens [Le 13/06/2012, 16:35] Deuchnord [Utiliser votre loupe] |
precise-creer-unity-lens [Le 07/06/2017, 14:01] (Version actuelle) L'Africain tag, et note intro |
||
---|---|---|---|
Ligne 1: | Ligne 1: | ||
- | ====== Créer une loupe Unity ====== | + | {{tag>unity programmation python À_RECYCLER}} |
- | <note>Cette page est un début de traduction de l'article [[http://developer.ubuntu.com/2012/04/how-to-create-a-wikipedia-unity-lens-for-ubuntu/|How to create a Wikipedia Unity lens for Ubuntu]] du site officiel d'Ubuntu App Developper. | + | |
- | N'hésitez pas à la compléter si vous en avez le temps ;)</note> | + | ====== Créer une loupe Unity ====== |
+ | <note warning>Quickly étant abandonné cette page est obsolète, il serait utile tout de même de la recycler pour proposer une autre methode pour créer des loupes</note> | ||
+ | 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'avoir des connaissances en Python pour suivre ce tutoriel.\\ | <note tip>Il est recommandé d'avoir des connaissances en Python pour suivre ce tutoriel.\\ | ||
Vous pouvez suivre [[http://www.siteduzero.com/tutoriel-3-223267-apprendre-python.html|ce tutoriel sur le Site du Zéro]].</note> | Vous pouvez suivre [[http://www.siteduzero.com/tutoriel-3-223267-apprendre-python.html|ce tutoriel sur le Site du Zéro]].</note> | ||
- | 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. | ||
===== Prérequis ===== | ===== Prérequis ===== | ||
Pour suivre ce tutoriel, vous aurez besoin de : | Pour suivre ce tutoriel, vous aurez besoin de : | ||
- | * [[precise|Ubuntu 12.04 LTS (« The Precise Pangolin »)]] | + | * [[precise|Ubuntu 12.04]] (ou version ultérieure: 12.10,13.04,...) |
- | * [[quickly|Quickly]] | + | |
- | * [[quickly-unity-lens-template|Quickly Unity Lens Template]] | + | |
- | + | ||
- | Vous pouvez installer ces deux derniers en un clic **[[apt>quickly,quickly-unity-lens-template|ici]]**. | + | |
===== Créer la loupe Wikipédia ===== | ===== Créer la loupe Wikipédia ===== | ||
Ligne 22: | Ligne 18: | ||
quickly edit</code> | quickly edit</code> | ||
La dernière ligne de code ouvre Gedit avec trois fichiers. Nous ne nous occuperons que de ''<nowiki>__init__</nowiki>.py'', fermez les deux autres. | La dernière ligne de code ouvre Gedit avec trois fichiers. Nous ne nous occuperons que de ''<nowiki>__init__</nowiki>.py'', fermez les deux autres. | ||
+ | |||
+ | 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 : | ||
+ | |||
+ | <code> quickly create unity-lens wikipedia | ||
+ | cd wikipedia/wikipedia | ||
+ | emacs __init__.py</code> | ||
+ | |||
+ | 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 : | La première chose que nous verrons est la classe Meta. Elle définit le comportement de la loupe : | ||
Ligne 64: | Ligne 68: | ||
</code> | </code> | ||
...sauf que nous, on veut des résultats provenant de Wikipédia ! | ...sauf que nous, on veut des résultats provenant de Wikipédia ! | ||
- | |||
===== Chercher sur Wikipédia ===== | ===== Chercher sur Wikipédia ===== | ||
Créons une nouvelle fonction permettant la recherche Wikipédia, que nous incorporerons ensuite dans le code. | Créons une nouvelle fonction permettant la recherche Wikipédia, que nous incorporerons ensuite dans le code. | ||
Ligne 102: | Ligne 105: | ||
<code=python>return results[1]</code> | <code=python>return results[1]</code> | ||
- | Notre fonction ''wikipedia_query'' devrait ressembler au code ci-dessous. On a ici ajouté un ''try'' et un ''except'' afin de prendre en compte des éventuelles erreurs qui pourraient survenir (erreur de réseau, erreur de transmission des résultats, etc.). S'il y a une erreur, un message s'affichera dans la console et une liste de résultats vide sera renvoyée. | + | Notre fonction ''wikipedia_query'' devrait ressembler au code ci-dessous. On a ici ajouté un ''try'' et un ''except'' afin de prendre en compte des éventuelles erreurs qui pourraient survenir (erreur de réseau, erreur de transmission des résultats, etc.). S'il y a une erreur, un message s'affichera dans la console et une liste de résultats vide sera renvoyée: |
+ | <code=python>def wikipedia_query(self,search): | ||
+ | try: | ||
+ | search = search.replace(" ", "|") | ||
+ | url = ("%s/w/api.php?action=opensearch&limit=25&format=json&search=%s" % (self.wiki, search)) | ||
+ | results = simplejson.loads(urllib2.urlopen(url).read()) | ||
+ | print "Searching Wikipedia" | ||
+ | return results[1] | ||
+ | except (IOError, KeyError, urllib2.URLError, urllib2.HTTPError, simplejson.JSONDecodeError): | ||
+ | print "Error : Unable to search Wikipedia" | ||
+ | return []</code> | ||
**Dès lors, tout ce que nous aurons à faire est de « brancher » cette nouvelle fonction à la fonction ''search'' définie plus haut.** | **Dès lors, tout ce que nous aurons à faire est de « brancher » cette nouvelle fonction à la fonction ''search'' définie plus haut.** | ||
Ligne 117: | Ligne 130: | ||
pass | pass | ||
</code> | </code> | ||
- | On pourrait traduire ce code par : « À chaque résultat renvoyé renvoyé par la fonction ''wikipedia_query'', ajouter un article à la loupe ». | + | On pourrait traduire ce code par : « À chaque résultat renvoyé par la fonction ''wikipedia_query'', ajouter un article à la loupe ». |
Ce qui se passe dans ''results.append'' est très important pour comprende ce que nous pourront afficher dans une loupe. Voici ce dont nous avons besoin pour passer les résultats à Unity (**ne copiez pas ce code, il ne fonctionnera pas !**) : | Ce qui se passe dans ''results.append'' est très important pour comprende ce que nous pourront afficher dans une loupe. Voici ce dont nous avons besoin pour passer les résultats à Unity (**ne copiez pas ce code, il ne fonctionnera pas !**) : | ||
<code=python> | <code=python> | ||
Ligne 132: | Ligne 145: | ||
===== Utiliser votre loupe ===== | ===== Utiliser votre loupe ===== | ||
Vous pouvez maintenant faire apparaître votre loupe dans le Dash en tapant la commande suivante dans le Terminal : | Vous pouvez maintenant faire apparaître votre loupe dans le Dash en tapant la commande suivante dans le Terminal : | ||
- | <code>sudo quickly install</code> | + | <code>sudo quickly install</code> (l'écran devrait clignoter 2-3 fois, ne pas s'inquiéter, c'est juste Unity qui se relance pour prendre en compte la nouvelle loupe fraîchement crée) |
...et le démarrer en tapant : | ...et le démarrer en tapant : | ||
- | <code>quickly run</code> | + | <code>quickly run</code><note>Il est possible que vous obteniez cette erreur en lançant cette commande:<code>Traceback (most recent call last): |
+ | File "bin/wikipedia", line 30, in <module> | ||
+ | from wikipedia import WikipediaLens | ||
+ | File "/home/user/wikipedia/wikipedia/__init__.py", line 41 | ||
+ | SyntaxError: Non-ASCII character '\xc3' in file /home/user/wikipedia/wikipedia/__init__.py on line 41, but no encoding declared; see http://www.python.org/peps/pep-0263.html for details</code>Pour y remedier, il suffit juste d'ajouter la ligne suivante au début du fichier (juste avant les 'import'):<code=python># -*- coding:utf-8 -*-</code>... et de relancer la commande suivante: <code>sudo quickly install && quickly run</code></note> | ||
{{http://developer.ubuntu.com/wp-content/uploads/2012/04/Screenshot-from-2012-03-30-172604-700x359.png}}\\ | {{http://developer.ubuntu.com/wp-content/uploads/2012/04/Screenshot-from-2012-03-30-172604-700x359.png}}\\ | ||
Il fait ce qu'il a à faire, c'est bien, voyons maintenant comment l'améliorer… | Il fait ce qu'il a à faire, c'est bien, voyons maintenant comment l'améliorer… | ||
+ | |||
+ | ===== Installer Définitivement votre loupe ===== | ||
+ | L'installation définitive de votre loupe se fait en 2 étapes : | ||
+ | * Allez dans le répertoire contenant votre loupe et tapez : | ||
+ | <code>quickly package</code> | ||
+ | Si tout ce passe bien vous devriez voir afficher : | ||
+ | <code>....Paquet Ubuntu créé dans le répertoire debian/ | ||
+ | .......................................................................................................................................Le paquet Ubuntu a été crée avec succès en tant que ../wikipedia_0.1_all.deb | ||
+ | </code> | ||
+ | Si vous avez l'erreur suivante : | ||
+ | <code>.... | ||
+ | Command returned some WARNINGS: | ||
+ | ---------------------------------- | ||
+ | WARNING: the following files are not recognized by DistUtilsExtra.auto: | ||
+ | -fichier.ext | ||
+ | ---------------------------------- | ||
+ | Do you want to continue (this is not safe!)? y/[n]: y | ||
+ | </code> | ||
+ | Il vous suffit de retirer tous les fichiers (ici "fichier.ext") de votre répertoire . | ||
+ | *La seconde étape est d'installer votre projet . | ||
+ | L'étape précédente créer un package "wikipedia_0.1_all.deb" pour l'installer il suffit de se placer dans le repertoire ou est situer "wikipedia_0.1_all.deb" et de taper la commande : | ||
+ | <code>dpkg -i wikipedia_0.1_all.deb</code> | ||
+ | |||
+ | Et voila votre loupe est installer dans le dash unity. | ||
+ | |||
===== Améliorons notre loupe ! ===== | ===== Améliorons notre loupe ! ===== | ||
Ligne 176: | Ligne 218: | ||
* [[unity|Unity : la nouvelle interface de bureau d'Ubuntu]] | * [[unity|Unity : la nouvelle interface de bureau d'Ubuntu]] | ||
* [[unity-lens|Unity lens : les loupes (ou lentilles) de Unity]] | * [[unity-lens|Unity lens : les loupes (ou lentilles) de Unity]] | ||
- |