[weboob] [weboob - Feature #403] ICapVideo may support paths

Nicolas Duhamel nicolas.duhamel2 at gmail.com
Mon Nov 29 17:26:35 CET 2010


 On Mon, 29 Nov 2010 16:49:55 +0100, Romain Bignon wrote:
> On 29/Nov - 16:09, Nicolas Duhamel wrote:
>> Oui mais ! comme je l'ai soulevé la dernière fois, il faut fournir
>> une API pour
>> séparer les PathNode et le contenu. Car si un des deux est en nombre
>> important
>> il devient difficile de les trier.
>>
>> Donc peu être retourner objet iterable qui aurait deux membres
>> Pahtnode et content eux-aussi
>> itérable.
>>
>> Quelque chose comme ça:
>>
>> [SKIP]
>>
>> Au moins les path et le contenu sont dissociable facilement par
>> l'application.
>
> Hum. En fait je ne suis pas d'accord. D'une part je ne sais pas ce
> que veut dire
> « il devient difficile de les trier », sachant que si besoin 
> l'application en
> bouclant peut envoyer les objets de type PathNode d'un côté et les 
> autres de
> l'autre.
>
> Et d'autre part, lorsqu'on va faire un set_path() sur plusieurs
> backends en même
> temps, on veut récupérer les entrées indifféremment les unes des 
> autres.
>
> Par exemple dans videoob, on ferait :
> videoob> ls
> channels/
> series/
> videoob> cd channels
> videoob> ls
> channel1/
> channel2/
> content1
> content2
>
> En gros, à supposer qu'on a trois backends Arte, CanalPlus et
> Youtube. On fait
> un ls à la racine :
> — Arte retourne juste un NodePath 'channel'
> — CanalPlus retourne un NodePath 'channel' et un autre 'series'
> — Youtube retourne un 'series'.
>
> On agrège les NodePath ensembles pour donc n'afficher que 'channels' 
> et
> 'series'.
>
> Lorsqu'on entre dans 'channels', du coup on n'interroge plus que 
> CanalPlus et
> Arte :
> — CanalPlus retourne le NodePath 'channel1' et le content 'content1'
> — Arte retourne les nodepath 'channel1' et 'channel2' et le content
> 'content2'.
>
> Ce que je veux dire, c'est qu'on agrège les paths (par contre
> évidement pas les
> content), et que donc se contenter de boucler sur les itérations de 
> do() qui
> retourne chaque itération des backends dans un ordre quelconque 
> permet une
> agrégation plus simple.
>
> Bon par contre évidement, dans videoob je ne sais pas trop comment
> afficher la
> sortie de 'ls' si jamais il y a trop de résultats, mais ce n'est pas
> lié à une
> séparation Node/Content.

 Alors prenons l'exemple d'AlloshowTv, si on entre dans le répertoire 
 "series",
 Pour lister les différentes séries le backend doit parcourir de 
 nombreuses pages
 (cf: http://www.alloshowtv.com/series/categories.php?cat=S&action=all), 
 alors que
 pour lister les derniers ajouts il suffit de les retrouver sur la page 
 d'acceuil.

 D'un autre coté rien n’empêche ici de créer un répertoire virtuel 
 "lastadd".

 Imaginons un répertoire contenant de nombreux autres répertoires mais 
 aucun contenu,
 il est alors impossible de le savoir à l'avance à moins de parcourir 
 tout le répertoire,
 pour se rendre compte que l'on a que des objets PathNode, ce qui peu 
 être long si cette
 information est découpée en plusieurs pages.

 Je trouve que retourner une simple liste nous prive d'informations qui 
 peuvent être utiles
 pour optimiser la navigation.

 En lisant ton explication, je remarque que tu voudrais que les paths 
 soient communs entre les
 backends, c'est vrai que ça pourrait être utile, mais ça nécessite de 
 parcourir l'intégralité du
 contenu du path sélectionné pour chaque backends et d'en faire l'union. 
 Imagine une requête series
 sur le backend alloshowtv et dpstream.
 cf: http://www.alloshowtv.com/series/categories.php?cat=S&action=all
 http://www.dpstream.net/serie.html
 ça risque de prendre un certain temps!

 Nicolas




More information about the weboob mailing list