URL: https://linuxfr.org/users/hercule_savinien/journaux/weboob-la-capability-collection Title: Weboob - la capability collection Authors: hercule_savinien Date: 2012年03月29日T20:24:25+02:00 Tags: weboob, web, weboob_spirit et bref Score: 14 Mon jour, Nal ! Si je prends ma plume aujourd'hui, c'est pour te parler de Weboob. On en a déjà parlé, remarques-tu avec pertinence. # Préambule Oui, c'est vrai. Il y a eu de nombreux journaux sur Weboob dernièrement. Enfin quelques-un du moins. Mais, si l'évocation du nom du projet parle à plus en plus de monde, de nombreuses fonctionnalités/applications méritent d'être mieux connues. Je vous propose aujourd'hui d'évoquer la capability collection. Pour rappel, dans Weboob, une capability est une fonctionnalité fournie par un ou plusieurs modules, un module correspondant à un site Web. Par exemple, les modules arte, canalplus ou youtube fournissent une capability vidéo. Et l'application videoob permet d'utiliser tous les modules fournissant cette capability. La capability collection, est une capability moins évidente à saisir. On sent bien intuitivement que la capability vidéo fournit des fonctionnalités permettant de gérer de la vidéo (play, download, search), la capability torrent permet de gérer des fichiers torrents (search, getfile), etc. La capability collection est plus transversale. Elle permet de gérer une collections d'éléments sous forme d'un pseudo filesystem, avec un ls, et éventuellement d'un cd. Dans certaines applications, son utilisation est naturelle. # Dans Boobil Par exemple, dans boobill on dispos des commandes suivantes : ``` Boobill Commands: bills Id details Id download Id [FILENAME] history Id subscriptions Weboob Commands: count [NUMBER | off] quit logging [LEVEL] inspect BACKEND_NAME cd [PATH] backends [ACTION] [BACKEND_NAME]... select [FIELD_NAME]... | "$direct" | "$full" formatter [list | FORMATTER [COMMAND] | option OPTION_NAME [on | off]] condition [EXPRESSION | off] ls [PATH] ``` Comme indiqué, les commandes propres à Boobil sont les 5 premières. Pour 4 d'entre elles, il est nécessaire d'avoir l'id du compte à interroger. Cet id se trouve avec la commande ls : ``` boobill> ls #1 (freemobile) 0642426969 - Forfait 60mn/60SMS à 2 euros #2 (freemobile) 0669694242 - Forfait 60mn/60SMS à 2 euros ``` On voit que nous avons deux comptes #1 et #2. Avec cette information on sait qui on souhaite interroger : ``` boobill> bills 1 +--------------------------------+------------+--------+----------+ | Id | Date | Format | Label | +--------------------------------+------------+--------+----------+ | 0642426969.20120228@freemobile | 2012年02月28日 | html | 20120228 | | 0642426969.20120128@freemobile | 2012年01月28日 | html | 20120128 | +--------------------------------+------------+--------+----------+ boobill> details 1 +--------------+----------------------------+-------------------------------------------+-------+ | Id | Label | Infos | Price | +--------------+----------------------------+-------------------------------------------+-------+ | 0@freemobile | Conso VOIX | National : 0h51min19s |International : - | 0.0 | | 0@freemobile | Appels numéros spéciaux | 0h3 min 59s | 0.0 | | 0@freemobile | Conso SMS | 29 / 60 | 0.57 | | 0@freemobile | Conso MMS | Vous avez consommé 0 MMS | 0.0 | | 0@freemobile | Conso DATA | Vous avez consommé 0 o | 0.0 | | 0@freemobile | Conso VOIX (international) | Appels émis : - | Appels reçus : - | 0.0 | | 0@freemobile | Conso SMS (international) | 0 | 0.0 | | 0@freemobile | Conso MMS (international) | Vous avez consommé 0 MMS | 0.0 | | 0@freemobile | Conso DATA (international) | Vous avez consommé 0 o | 0.0 | | 0 | Sum | Generated by boobill | 0.57 | +--------------+----------------------------+-------------------------------------------+-------+ ``` # Radioob Prenons un autre exemple : radioob. Si on souhaite écouter une radio, c'est bien de savoir quelle station écouter. Les commandes disponibles sont les suivantes : ``` radioob> help Radioob Commands: info ID play ID search PATTERN Weboob Commands: count [NUMBER | off] quit logging [LEVEL] inspect BACKEND_NAME cd [PATH] backends [ACTION] [BACKEND_NAME]... select [FIELD_NAME]... | "$direct" | "$full" formatter [list | FORMATTER [COMMAND] | option OPTION_NAME [on | off]] condition [EXPRESSION | off] ls ``` Encore une fois, c'est utile de savoir ce qu'on veut jouer. Certes, on peut connaitre un id à l'avance et lancer directement la commande, mais il faut le savoir. ``` radioob> play blues@ouifm ``` En faisant un ls on peut mieux voir ce qui est disponible et choisir ce qu'il faut streamer. ``` radioob> ls * (1) OUÏ FM Indé (ouifm) OUI FM - Rock Indé (Current: CAT POWER - NAKED) * (2) OUÏ FM Blues (ouifm) OUI FM - Blues (Current: GUITAR SLIM - THE THINGS THAT I USED TO D) * (3) OUÏ FM Collector (ouifm) OUI FM - Classic Rock (Current: FRANK ZAPPA - JOE'S GARAGE) * (4) OUÏ FM Alternatif (ouifm) OUI FM - L'Alternative Rock (Current: JIMMY EAT WORLD - HIGHER DEVOTION) * (5) OUÏ FM (ouifm) OUI FM (Current: ROBERT FRANCIS - KEEP ON RUNNING) radioob> info 2 id: blues@ouifm title: OUÏ FM Blues description: OUI FM - Blues current: ETTA JAMES - BALL AND CHAIN streams: [128kbits/s (http://ouifm.ice.infomaniak.ch/ouifm4.mp3)] radioob> play 2 # Ou bien radioob> play blues@ouïfm ``` Autre exemple, avec le module franceinfo de chargé plutôt que ouïfm : ``` radioob> ls francebleu * (1) France Bleu Alsace (Strasbourg) (radiofrance) France Bleu Alsace (Strasbourg) [...] * (42) France Bleu Vaucluse (Avignon) (radiofrance) France Bleu Vaucluse (Avignon) radioob> play 12 Invoking "mplayer http://mp3.live.tv-radio.com/fbchampagne/all/fbchampagne.mp3". [...] Name : France Bleu Champagne - 32 - mp3 Website: http://www.francebleu.com Public : no Bitrate: 32kbit/s Cache size set to 320 KBytes Cache fill: 0.00% (0 bytes) ICY Info: StreamTitle=''; Cache fill: 17.50% (57344 bytes) ICY Info: StreamTitle='';StreamUrl=''; ``` # Videoob Enfin terminons avec videoob. Avec videoob, l'utilisation de la capability collection n'est pas strictement nécessaire. On peut très bien se contenter de faire un copier coller un lien connu trouvé au détour d'un journal linuxfr ou sur un site de vidéo. Par exemple, en allant sur le site de canalplus, on voit qur l'url du dernier bref est http://www.canalplus.fr/c-divertissement/pid3848-c-bref.html?vid=615408 Dans ce cas, on peut télécharger la vidéo avec un simple ```videoob download http://www.canalplus.fr/c-divertissement/pid3848-c-bref.html?vid=615408``` ou encore ````videoob download 615408@canalplus``` Autre cas d'école, si [au détour d'un journal](http://linuxfr.org/users/jiehong/journaux/viande-ou-pas-viande), on trouve des personnes qui parlent d'une émission et qu'on souhaite la regarder, on peut utiliser la fonction search (en mode interactif "backends only arte", pour ne pas être spamé par les résultats, puis "search adieu au steack", ou "search nouveaux végétariens", puis download #id). Ceci, c'était pour la méthode recherche par titre. Il est également de procéder par thème, ou par collection. ``` videoob> ls ~ (latest) Latest NoLiveTV videos (nolifetv) ~ (latest) Latest YouTube videos (youtube) ~ (latest) Latest Dailymotion videos (dailymotion) ~ (latest_nsfw) Latest Youjizz videos (NSFW) (youjizz) ~ (latest) Latest France Télévisions videos (francetelevisions) ~ (latest_nsfw) Latest YouPorn videos (NSFW) (youporn) ~ (latest) Latest Arte videos (arte) ~ (emissions) Emissions (canalplus) ~ (sport) Sport (canalplus) ~ (cinema) Cinema (canalplus) ~ (cesar-2012) Cesar 2012 (canalplus) ~ (series-fictions) Series / fictions (canalplus) ~ (du-hard-ou-du-cochon) Du hard ou du cochon (canalplus) ~ (divertissement) Divertissement (canalplus) ~ (canal-street) Canal street (canalplus) ~ (musique) Musique (canalplus) ~ (docus-infos) Docus / infos (canalplus) ``` Là, ls me liste les collections disponible sur tous les modules. Je ne suis intéressé que par canalplus (je cherche les bref). ``` videoob> backends only canalplus videoob> ls ~ (emissions) Emissions (canalplus) ~ (sport) Sport (canalplus) ~ (cinema) Cinema (canalplus) ~ (cesar-2012) Cesar 2012 (canalplus) ~ (series-fictions) Series / fictions (canalplus) ~ (du-hard-ou-du-cochon) Du hard ou du cochon (canalplus) ~ (divertissement) Divertissement (canalplus) ~ (canal-street) Canal street (canalplus) ~ (musique) Musique (canalplus) ~ (docus-infos) Docus / infos (canalplus) videoob> cd emissions videoob:/emissions> ls ~ (toutes-les-émissions) Toutes les émissions (canalplus) ~ (les-emissions-quotidiennes) Les emissions quotidiennes (canalplus) ~ (les-emissions-du-samedi) Les emissions du samedi (canalplus) ~ (les-emissions-du-dimanche) Les emissions du dimanche (canalplus) ~ (les-emissions-evenementielles) Les emissions evenementielles (canalplus) ~ (le-grand-journal) Le Grand Journal (canalplus) ~ (bref) Bref (canalplus) videoob:/emissions> cd bref videoob:/emissions/bref> ls * (1) Bref. Je m'appelle Eric Dampierre. (canalplus) 2012年03月27日 10:04:57.464933 * (2) Bref. J'ai aucune mémoire. (canalplus) 2012年03月27日 10:04:57.465034 * (3) Bref. Y a des gens qui m'énervent. (canalplus) 2012年03月27日 10:04:57.465097 * (4) Bref. Je suis en couple. (canalplus) 2012年03月27日 10:04:57.465157 * (5) Bref. Mon frère a quelqu'un. (canalplus) 2012年03月27日 10:04:57.465214 * (6) Bref. J'ai fêté le nouvel an. (canalplus) 2012年03月27日 10:04:57.465292 * (7) Bref. Baptiste est super flippant. (canalplus) 2012年03月27日 10:04:57.465374 * (8) Bref. Ma copine travaille dans un sex-shop. (canalplus) 2012年03月27日 10:04:57.465497 * (9) Bref. Je suis vieille. (canalplus) 2012年03月27日 10:04:57.465565 * (10) Bref. J'ai eu 30 ans. (canalplus) 2012年03月27日 10:04:57.465638 ``` Cool, j'ai les dix dernières émissions de bref à portée de main. C'est moins laborieux que de copier coller les urls unes à unes. Bon, 10 c'est pas assez, j'en veux plus : ``` videoob:/emissions/bref> count 30 videoob:/emissions/bref> ls * (1) Bref. Je m'appelle Eric Dampierre. (canalplus) 2012年03月27日 10:05:34.318677 * (2) Bref. J'ai aucune mémoire. (canalplus) 2012年03月27日 10:05:34.318773 [...] * (29) Bref. J'ai recouché avec mon ex. (canalplus) 2012年03月27日 10:05:34.321201 * (30) Bref. J'ai un pote à conditions générales. (canalplus) 2012年03月27日 10:05:34.321282 ``` Voilà, j'espère, mon cher Nal, que tu aura pu découvrir cette fonctionnalité trop peu connue de Weboob, la capability collection et que cela t'aidera à trouver la sérénité ultime et de retrouver une totale liberté d'esprit cosmique vers un nouvel âge réminiscent.

AltStyle によって変換されたページ (->オリジナル) /