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

Nicolas Duhamel nicolas.duhamel2 at gmail.com
Thu Nov 25 17:13:38 CET 2010


 Bonjour,

 Le backend canalplus supporte totalement ICapPath.


 In [5]: backend.set_path()
 Out[5]:
 (['CANAL+STREET',
   'CINEMA',
   'CREA%2B',
   'DIVERTISSEMENT',
   'DU+HARD+OU+DU+COCHON',
   'SERIES+%2F+FICTIONS',
   'DOCUS+%2F+INFOS',
   'EMISSIONS',
   'MUSIQUE',
   'SPORT'],
  [])

 In [6]: backend.set_path('CREA%2B')
 Out[6]:
 (['BE+GREEN+FILM+FESTIVAL',
   'Les+mieux+not%C3%A9es',
   'LA+NUIT+DES+CONS',
   'LA+SELECTION+CANAL',
   'LES+%2B+RECENTES',
   'LES+%2B+VUES'],
  [])

 In [7]: backend.set_path('CREA%2B/BE+GREEN+FILM+FESTIVAL')
 Out[7]: ([], <generator object at 0x1487f38>)


 Le backend alloshowtv est encore en développement:

 In [2]: backend.set_path("mad")
 Out[2]:
 (['Madame+est+servie',
   'Madame+le+Proviseur',
   'Mademoiselle+Joubert',
   'Asuka+e+soshite+mada+minu+koe',
   'Madame+le+juge',
   'Les+Nomades+du+futur',
   'Madame+Columbo',
   'Mad+men',
   'Next+Made+in+France'],
  [])


 In [3]: backend.set_path("mad/Mad+men")
 Out[3]: (['Saison+4', 'Saison+2', 'Saison+3', 'Saison+1'], [])

 In [4]: backend.set_path("mad/Mad+men/Saison+1")
 Out[4]:
 (['%C3%A9pisode+08',
   '%C3%A9pisode+09',
   '%C3%A9pisode+04',
   '%C3%A9pisode+05',
   '%C3%A9pisode+06',
   '%C3%A9pisode+07',
   '%C3%A9pisode+13',
   '%C3%A9pisode+01',
   '%C3%A9pisode+02',
   '%C3%A9pisode+03',
   '%C3%A9pisode+11',
   '%C3%A9pisode+10',
   '%C3%A9pisode+12'],
  [])

 In [5]: backend.set_path("mad/Mad+men/Saison+1/%C3%A9pisode+06")
 http://www.allourl.com/?u=1DXJLZCTHKOOXI4QWFG6UV7AF20QN8OJEJ6D5HH6KV9W9QWVY7CBJ52J174PHRJE8ES16RHKYPTVRTNEUMD1&t=mu
 Out[5]: ([], [])

 Il implante la recherche sous la forme du premier path donné, permet la 
 navigation complète:

 In [11]: 
 backend.set_path("mad/Mad+men/Saison+1/%C3%A9pisode+06/../../")
 Out[11]: (['Saison+4', 'Saison+2', 'Saison+3', 'Saison+1'], [])

 Mais termine sur un print "dégueulasse" de l'url de la vidéo protégé 
 par ce qu'on pourrait appelé un crypter d'url, chose assez
 commune pour les sites de DDL. Il existe de nombreux site de ce genre, 
 et ils change régulièrement donc je ne sais pas encore trop
 comment l'implanter dans weboob...


 A propos du backend bp, en croyant bien faire Romain avait réécrit une 
 partie du code malheureusement, il y a toujours une erreur sur la page 
 de détails du virement provoqué par un encodage merdique de la page, 
 même mon firefox ne me l'affiche pas correctement. L'erreur et soulevée 
 par lxml dès que l'on tente d’accéder à p.text. J'ai donc remis en place 
 le petit hack très très moche mais corrige ce problème!

 A vos remarques !





 On Fri, 19 Nov 2010 09:30:31 +0100, Romain Bignon wrote:
> On 19/Nov - 08:52, Nicolas Duhamel wrote:
>> Sur ce point je suis d'accord, j'utilise pour le moment PathMap pour
>> permettre un
>> développement plus rapide, mais à l'usage je me rends compte qu'il
>> n'est pas tout à
>> fait adapter, donc pas la peine d'y jeter un œil il est voué à
>> disparaitre.
>
> Ok, cool !
>
>> C'est en cours de développement, surement pour la fin de semaine
>> prochaine. Je détaillerais à
>> ce moment là.
>
> Très bien.d
>
>> Sur ce point on peut discuter dès maintenant.
>>
>> set_path() retourne deux iterateur (path, contenu) ce qui permet de
>> différencier facilement
>> les sous-répertoires du contenu.
>
> En fait, dans le cas où j'ai bien compris, je ne vois pas pourquoi 
> retourner
> deux itérateurs, alors qu'on pourrait n'en retourner un, et on
> pourrait soit :
> − Représenter les sous-répertoires avec un objet genre Directory 
> défini dans
> ICapPath, et un contenu serait un objet de type Video ou autre.
> L'application a
> juste à faire un isinstance pour chaque itération afin de savoir à ce 
> qu'il a
> affaire.
> — Avoir un objet Node qui représente soit un répertoire soit un
> contenu, avec un
> attribut de type, et qui dans le cas d'un contenu a un attribut
> 'content' avec
> l'objet Video.
>
>> Dans l'état actuel le backend part de la racine et remonte path par
>> path, le backend n'a pas
>> de "mémoire" du path courant il faut donc retourner les
>> sous-repertoires et le contenu au moment
>> où l'on change de path sinon cette information est perdu et le
>> changement de path ne sert à rien.
>
> Je ne saisis pas cette histoire de « remonter path par path ».
>
>> Maintenant si iter_path() retourne la même chose que set_path(), je
>> peux changer le nom de la fonction, et
>> il est vrai que cela semble plus logique puisque cette fonction
>> retourne des iterateurs.
>
> Oui.
>
>> Est-ce que set_path() ou iter_path() suffit ?!
>
> Pour ma part je pense que oui, le principal est qu'une fois qu'on a
> atteint un
> répertoire ayant du contenu, la méthode les retourne, et donc 
> l'objectif est
> atteint.
>
>> La suite la semaine prochaine !
>
> À ce sujet, Weboob 0.4 est prévue pour le mercredi premier décembre,
> soit dans
> un peu moins de deux semaines. Sachant que pour avoir quelque chose
> de stable il
> vaut mieux que ce soit bouclé d'ici la fin de la semaine prochaine,
> est-ce que
> tu penses que c'est envisageable pour 0.4 ou vaut mieux planifier ça
> dans 0.5 ?
>
> Note qu'une fois que l'on aura défini une API, je pense que c'est 
> jouable
> de porter une partie des backends susceptibles de supporter cette 
> capability
> assez rapidement.
>
> Côté application, ce ne sera à mon avis pas bien compliqué, puisqu'il 
> se
> contente d'une commande cd qui appelle iter_path() et qui stock le
> résultat, ls
> affiche ces résultats, et play/info à modifier pour pouvoir prendre
> une valeur
> de résultat de iter_path().
>
> Romain




More information about the weboob mailing list