title:      C&#39;est l&#39;été, profitez-en pour dégraisser votre OPML !
slug:       cest-lete-profitez-en-pour-degraisser-votre-opml
date:       2005-07-26 15:01:01
type:       post
vignette:
contextual_title1:  ★ L&#39;artiste qui sommeille en chaque geek
contextual_url1:    20080613-artiste-qui-sommeille-en-chaque-geek
contextual_title2:  L&#39;intelligence économique (veille technologique) en pratique
contextual_url2:    20070609-l-intelligence-economique-veillle-technologique-en-pratique
contextual_title3:  Pour en finir avec les « Mot de passe oublié ? »
contextual_url3:    20060802-pour-en-finir-avec-les-mot-de-passe-oublie

<p>Réalisé au départ pour <a href="http://niko.informatif.org/">[NikO]</a>, ce script permet de supprimer les fils <abbr title="RDF Site Summary">RSS</abbr> en double contenus dans un fichier <abbr title="Outline Processor Markup Language">OPML</abbr> ce qui arrive fréquemment lorsque l'on dépasse les 1000 fils paraît-il (à moins d'utiliser un aggrégateur qui le détecte bien entendu). Je ne sais pas si ça va servir à plus de trois personnes, vos idées sont les bienvenues et me motiveront pour continuer, n'hésitez pas à demander des fonctionnalités.</p>

<h2>Qu'est ce que c'est tout ça&nbsp;?</h2>


<p>Bon a priori si vous ne savez pas ce que c'est, il est probable que ce programme ne vous servira pas à grand chose. Un fil <abbr title="RDF Site Summary">RSS</abbr> est un fichier généré à chaque mise à jour d'un site dans un format adapté permettant à un utilisateur de le télécharger régulièrement de façon à être tenu au courant de l'évolution du site en question. Il existe des programmes appelés aggrégateurs permettant d'exploiter ces fils, une description plus poussée de la technologie sera disponible prochainement sur ce site. Ces aggrégateurs génèrent des fichiers <abbr title="Outline Processor Markup Language">OPML</abbr> (bien souvent de sauvegarde) contenant l'ensemble des fils auquels vous êtes abonnés. Le script proposé ici permet de supprimer les fils que vous avez inclus en double dans votre aggrégateur.</p>


<h2>Utilisation</h2>


<p>Pour l'instant ça se passe en ligne de commande, il suffit de taper après avoir rendu le fichier <strong>opml2uniq.py</strong> executable&nbsp;:</p>


<pre>./opml2uniq.py -i &lt;votre-ficher&gt;.opml</pre>


<p>Pour obtenir la totalité des options, l'inévitable option <strong>-h</strong> est à votre service.</p>


<p>La version 1.1 du script est sous licence <abbr title="GNU General Public License">GPL</abbr> et <a href="#">librement téléchargeable</a>.</p>


<h2>Développement</h2>


<p>Concrêtement, ce script ne va pas servir à grand monde je pense mais c'était aussi une façon de progresser en python et d'avoir sous la main un template pour des petits projets rapides. J'ai essayé de respecter les bonnes pratiques d'usage pour développer en python, n'hésitez pas à lire <a href="http://afpy.org/Members/tarek/afpynews.2005-07-20.9909576159">la présentation donnée aux <abbr title="Rencontres Mondiales Logiciels Libres">RMLL</abbr> à ce sujet</a>. Concernant le code et sa lisibilité justement, n'hésitez pas à critiquer, je suis encore débutant et ne demande qu'à progresser ;-).</p>


<p>En fait, l'étape suivante du script serait de réaliser <del>une sorte d'<strong><abbr title="Outline Processor Markup Language">OPML</abbr> manager graphique</strong> qui pourrait ensuite évoluer vers</del> un aggrégateur (en cours de réflexion/développement car tous ceux que j'ai pu tester ne m'ont pas convenu). Je me suis donc lancé à la fois dans Gtk et dans <abbr title="Document Object Model">DOM</abbr> (oui pour l'instant le script n'utilise pas le module <abbr title="eXtensible Markup Language">XML</abbr>) et j'ai inévitablement été attiré par la présentation de python et <abbr title="eXtensible Markup Language">XML</abbr> donnée aux <abbr title="Rencontres Mondiales Logiciels Libres">RMLL</abbr> et là je dois dire que j'ai été choqué par les captures montrées, je crois vraiment qu'il est temps de développer des outils qui soient à la fois fonctionnels ET esthétiques&nbsp;! Comment passer toute sa journée sur&nbsp;:</p>


<p><img src="/static/david/biologeek/images/presentation_emacs.png" alt="Capture emacs" style="display:block; margin:0 auto;" /></p>


<p>alors qu'il est possible de travailler avec&nbsp;:</p>


<p><img src="/static/david/biologeek/images/opml2uniq_scite.png" alt="Capture scite" style="display:block; margin:0 auto;" /></p>


<p>Loin de moi l'idée de lancer un énième troll vi/emacs/scite mais ça ne vous choque pas la laideur d'emacs (ou alors je ne suis pas encore assez barbu :D)&nbsp;? Et puisque nous en sommes à ce type de considérations, quel est votre outil de développement en python&nbsp;? Vous l'aurez compris en ce moment j'utilise scite qui une fois <a href="#">bien configuré</a> s'avère très puissant.</p>
