Olivier Mengué – Code & rando - Tag - Python - Commentaires2024-03-29T14:14:50+01:00urn:md5:57e646ab8ca85028168daaaa985aa995Dotclearxmltv-fr.appspot.com est en ligne ! - Olivier - Code & randourn:md5:793e851545728660b93d93ed5fc67fc82008-10-09T18:41:28+00:002008-10-09T19:27:09+00:00Olivier - Code & rando<p>Merci Kael. J'ai corrigé le lien.</p>
<p>Tu parles d'une interface. Si tu parles de <a href="http://xmltv-fr.appspot.com/xsltv/tv.html" rel="nofollow">la page de consultation en HTML</a>, je n'ai aucun mérite puisqu'il s'agit de <a href="http://www.ericandchar.com/xsltvgrid/" rel="nofollow">XSLTv Grid</a>. Je produit juste le fichier <a href="http://xmltv-fr.appspot.com/xsltv/tv.xml" type="application/xml" rel="noindex nofollow" rel="nofollow">tv.xml</a> utilisé par XSLTv.</p>
<p>Pour afficher le programme en cours avec <a href="http://www.funktronics.ca/python-xmltv" rel="nofollow">python-xmltv</a>, voici un petit exemple :</p>
<pre class="code vim vimft-python">
<span class="Comment"># -*- coding: utf-8 -*-</span>
<span class="PreProc">import</span> xmltv
<span class="PreProc">from</span> datetime <span class="PreProc">import</span> datetime
<span class="PreProc">from</span> xml.etree.cElementTree <span class="PreProc">import</span> ElementTree
et = ElementTree()
<span class="Comment"># wget -O tv.xml http://xmltv-fr.appspot.com/telerama.xmltv</span>
tv = et.parse(open(<span class="Normal">'</span><span class="Constant">tv.xml</span><span class="Normal">'</span>, <span class="Normal">'</span><span class="Constant">r</span><span class="Normal">'</span>))
channels = dict([(c[<span class="Normal">'</span><span class="Constant">id</span><span class="Normal">'</span>], c) <span class="Statement">for</span> c <span class="Operator">in</span> xmltv.read_channels(tree=tv)])
programmes = xmltv.read_programmes(tree=tv)
<span class="Comment"># Récupère la date/heure au format XMLTV</span>
<span class="Comment"># Ensuite il n'y a plus qu'à faire des comparaisons de chaînes</span>
now_xmltv = datetime.now().strftime(<span class="Normal">'</span><span class="Constant">%Y%m%d%H%M%S</span><span class="Normal">'</span>)
<span class="Statement">for</span> p <span class="Operator">in</span> programmes:
<span class="Statement">if</span> now_xmltv >= p[<span class="Normal">'</span><span class="Constant">start</span><span class="Normal">'</span>] <span class="Operator">and</span> now_xmltv <= p[<span class="Normal">'</span><span class="Constant">stop</span><span class="Normal">'</span>]:
<span class="Statement">print</span> <span class="Normal">"</span><span class="Constant">%s : %s (%s)</span><span class="Normal">"</span> % (
channels[p[<span class="Normal">'</span><span class="Constant">channel</span><span class="Normal">'</span>]][<span class="Normal">'</span><span class="Constant">display-name</span><span class="Normal">'</span>][0][0],
p[<span class="Normal">'</span><span class="Constant">title</span><span class="Normal">'</span>][0][0],
p[<span class="Normal">'</span><span class="Constant">category</span><span class="Normal">'</span>][0][0])
</pre>
<p>Pour aller plus loin, il vaut mieux convertir les membres <code>start</code>/<code>stop</code> d'un programme en objets datetime :</p>
<pre class="code vim vimft-python">
<span class="Statement">for</span> p <span class="Operator">in</span> programmes:
<span class="Statement">for</span> k <span class="Operator">in</span> [<span class="Normal">'</span><span class="Constant">start</span><span class="Normal">'</span>, <span class="Normal">'</span><span class="Constant">stop</span><span class="Normal">'</span>]:
p[k] = datetime.strptime(p[k], <span class="Normal">'</span><span class="Constant">%Y%m%d%H%M%S</span><span class="Normal">'</span>)
</pre>xmltv-fr.appspot.com est en ligne ! - kaelurn:md5:c5f27b5682c0111babc9c908c5912ed62008-10-04T02:24:06+00:002008-10-09T14:11:34+00:00kael<p>C'est une belle application. L'interface est bien.<br />
<br />
J'ai écrit un bot Jabber qui publie le morceau en cours d'une radio sous la forme de <presence/> [1] et je voudrais écrire un bot qui afficherait les programmes TV en cours de la même façon - il y a même un format standard [2]. Le bot pourrait aussi envoyer un <message/> pour notifier du début d'un programme, probablement avec Pubsub.<br />
<br />
J'ai commencé à jeter un oeil à python-xmltv, mais je n'ai pas encore trouvé comment parser le flux XMLTV de façon à en extraire le programme en cours.<br />
<br />
Peut-être que l'idée pourrait t'intéresser.<br />
<br />
Et autrement, l'URL de xmltv-fr.appspot.com pointe vers cette page.<br />
<br />
[1] <a href="http://www.flickr.com/photos/kaelr/2266741846/" title="http://www.flickr.com/photos/kaelr/2266741846/" rel="nofollow">www.flickr.com/photos/kae...</a><br />
[2] <a href="http://xmpp.org/extensions/xep-0197.html" title="http://xmpp.org/extensions/xep-0197.html" rel="nofollow">xmpp.org/extensions/xep-0...</a></p>Installer Python, SQLObject et Cheetah sous Windows - ALAIN DESNOSurn:md5:9e4bbf25662d70635545a1e2d0a3f3d62007-06-04T22:53:41+00:002007-06-04T22:53:41+00:00ALAIN DESNOS<p>avez-vous "C version of NameMapper installed" pour python 2.5<br />
cela semble nécessaire<br />
<br />
Cordialement<br />
<br />
Merci pour cette page !</p>