Le web, c'est le mal. Et pourtant, on est contraint de vivre avec lui au quotidien, puisqu'il semble que le Cloud Computing est la voie de l'avenir.
Mes amis, allons nous rester les bras ballants, à devoir supporter l'utilisation de navigateurs tous plus lourds les uns que les autres, ne s'intégrant pas dans notre environnement de bureau ? Mais pire encore, qui nous font perdre notre liberté. La liberté de choisir les applications que l'on souhaite, le traitement de nos données par des logiciels tiers, la liberté de bénéficier de l'ergonomie qui nous arrange ?
Heureusement, ces contraintes sont peut-être bientôt révolues. Je tiens en effet à vous présenter weboob.
Projet complémentaire à Minbif, qui permet d'utiliser son client IRC favori pour accéder aux réseaux de messagerie instantanée, qui sort ce lundi 5 avril en version 1.0.2, et au sujet duquel une conférence se déroulera aux RMLL 2010, weboob (WEB Out Of Browsers) se veut un espoir pour tous les révoltés qui ne supportent plus d'être à la merci des ”webmaster”.
Weboob est un projet qui a pour but de réunir un nombre important de modules maintenus pour divers sites web, offrant une interface logique avec eux. Chaque module implémente des capabilities, décrivant les services offerts.
À partir de là, des applications utilisateurs sont réalisées, reposant sur des modules implémentant telle ou telle capability, et permettant une interaction riche avec les sites web.
La particularité est que la couche d'abstraction offerte par weboob permet aux applications de ne pas se soucier des modules qui sont chargés. L'utilisateur rempli une première fois une configuration en sélectionnant les sites web qu'il souhaite voir utilisé, et avec quelle configuration. Puis après, quelque soit l'application utilisée, il n'aura plus à se soucier des sites qui sont derrière les opérations qu'il effectue.
Afin de mieux montrer le potentiel de weboob, voici quelques cas d'utilisation concrets :
Monboob
Cette application est en fait un démon. Il se repose sur les modules qui implémentent les capabilities ICapMessages et dérivés. Pour le moment seul le module DLFP (linuxfr.org) est implémenté, mais pourront voir le jour non seulement des modules pour Slashdot, Reddit, ou autres sites de news, mais également des moteurs de forum.
L'idée est d'une part d'envoyer par mail non seulement les articles, mais aussi les commentaires associés. Et d'autre part, lorsqu'on répond à ce mail avec son client préféré, de poster cette réponse.
Voici ce que ça donne :
Increase de sa productivity : maximum.
travel
Cette application en console utilise les modules implémentant ICapTravel et dérivés. Les sites supportés pour le moment sont CanalTP (pour les horaires de TGV/Corail/TER), et transilien.fr (pour les horaires de transilien, RER, bus, sur Paris).
On peut faire une recherche sur les gares :
$ travel stations defense .--------------------------------.---------------------------------------------. | ID | Name | +--------------------------------+---------------------------------------------+ | LDU | LA DEFENSE GARE SNCF | | GAW | LA DEFENSE RER A | | OCE87382218 | gare de La Défense (92800) | +--------------------------------'---------------------------------------------+ | 3 stations listed | '------------------------------------------------------------------------------'
Et à partir de là, récupérer les horaires d'une gare donnée :
$ travel departures GAW .-----.-----------.-------.-----------------------.-------.--------------------. | ID | Type | Time | Arrival | Late | Info | +-----+-----------+-------+-----------------------+-------+--------------------+ | 0 | QTIE | 09:30 | MARNE LA VALLEE CHESSY| | Voie 1 | | 1 | UBOS | 09:32 | CERGY LE HAUT | | Voie 2 | | 2 | OKEY | 09:33 | TORCY MARNE LA VALLEE | | Voie 1 | | 3 | TEDY | 09:37 | POISSY | | Voie 2 | | 4 | QTIE | 09:40 | MARNE LA VALLEE CHESSY| | Voie 1 | | 5 | UBOS | 09:41 | CERGY LE HAUT | | Voie 2 | +-----'-----------'-------'-----------------------'-------'--------------------+ | 6 departures listed | '------------------------------------------------------------------------------'
On peut constater que l'intégration entre les deux backends est faite de façon plus ou moins transparente. En effet, ainsi que l'on voit dans la liste des gares, les identifiants courts sont issus de transilien.fr, et les identifiants longs de CanalTP. Ainsi, pour récupérer les horaires de TGV, on préfèrera utiliser un ID long. Une amélioration au niveau de la présentation est à faire.
Il est à noter qu'un frontend similaire graphique est en préparation pour Nokia N900.
Un autre aspect de cette application serait de permettre la réservation de billets de TGV en ligne, en se reposant sur le site web dont la notoriété n'est malheureusement plus à faire, voyage-sncf.
boobank
Application toujours en console, changeant les modules implémentant la capability ICapBank, et permet de récupérer des informations de site bancaire. L'avantage de weboob est que si vous possédez des comptes dans plusieurs banques, vous pourrez afficher vos comptes de manière unifiée.
Pour le moment, seul le module bnporc, issus du projet éponyme que j'avais implémenté il y a un an de cela, est implémenté.
On peut ainsi récupérer la liste de ses comptes :
$ boobank list
ID Account Balance Coming
+-----------------+---------------------+--------------+-------------+
1255000XXXXXXXX Compte de chèques -314.13 -1110.36
1255000XXXXXXXX Livret Jeune 74.17 0.00
Et également obtenir un détail des opérations à venir :
$ boobank coming 1255000XXXXXXXX
Date Label Amount
+----------+----------------------------------------------------+-------------+
20100503 FACTURE CARTE DU 310310 SNC HAUDRECHY 92 PUTEA -28.70
20100503 FACTURE CARTE DU 310310 LA DIVA 92 PUTEAUX CAR -30.50
20100503 FACTURE CARTE DU 310310 TAVERNE OLYMPIA 75 PAR -26.80
20100503 FACTURE CARTE DU 260310 SNC HAUDRECHY 92 PUTEA -27.50
On peut imaginer réaliser des graphes à partir de ces données, les stocker au fur et à mesure pour voir l'évolution des comptes, et même pourquoi pas imaginer un démon qui mettrait à jour régulièrement et enverrait des alertes en cas de mouvements inhabituels.
Conclusion
On se rend compte que la séparation entre les backends (les modules accédant aux sites web) et les frontends (les applications faisant appel à ces modules par l'intermédiaire de weboob), et la couche d'abstraction que représente weboob entre les deux, permet de concentrer les efforts, d'une part sur la simple boobisation des sites web, de par les outils que fournis weboob, et d'autre part sur le traitement de ces données. Ainsi, un même set de backends peut être utilisé par des applications différentes, graphiques ou non.
Il n'y a pour l'instant que quelques modules, et des applications certes fonctionnelles mais assez pauvres en traitement des données. Mais il y a là une formidable opportunité d'améliorer considérablement cela et de permettre de retirer de plus en plus le web pour les besoins quotidiens.


Plus sérieusement, je n’ai pas trouvé la doc pour le configurer (j’ai peut être mal chercher). Pour le moment, j’ai juste fais un python setup.py install, quelle est l’étape suivante ?
Et donc, l’idée serait de permettre également la création d’un module pour meetic.
Enfin, le fichier setup.py n’est probablement pas fonctionnel, je t’invite à l’utiliser pour le moment depuis les sources.
Je t’invite à exporter PYTHONPATH=$PWD dans la racine des sources, puis à lancer les frontends de cette manière :
Et pour le configurer, lis la page Backends Configuration
Espéront que tous ces projets vont collaborer pour offrir une expérience utilisateur plus riche.