Réalisé au départ pour [NikO], ce script permet de supprimer les fils RSS en double contenus dans un fichier OPML 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.
Qu'est ce que c'est tout ça ?
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 RSS 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 OPML (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.
Utilisation
Pour l'instant ça se passe en ligne de commande, il suffit de taper après avoir rendu le fichier opml2uniq.py executable :
./opml2uniq.py -i <votre-ficher>.opml
Pour obtenir la totalité des options, l'inévitable option -h est à votre service.
La version 1.1 du script est sous licence GPL et librement téléchargeable.
Développement
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 la présentation donnée aux RMLL à ce sujet. Concernant le code et sa lisibilité justement, n'hésitez pas à critiquer, je suis encore débutant et ne demande qu'à progresser ;-).
En fait, l'étape suivante du script serait de réaliser une sorte d'OPML manager graphique qui pourrait ensuite évoluer vers 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 DOM (oui pour l'instant le script n'utilise pas le module XML) et j'ai inévitablement été attiré par la présentation de python et XML donnée aux RMLL 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 ! Comment passer toute sa journée sur :
alors qu'il est possible de travailler avec :
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) ? Et puisque nous en sommes à ce type de considérations, quel est votre outil de développement en python ? Vous l'aurez compris en ce moment j'utilise scite qui une fois bien configuré s'avère très puissant.
Commentaires
mat le 26/07/2005 :
Un scite bien configuré doit au moins inclure toolbar.usestockicons = 1, ou utiliser mon patch qui est en pleine refonte :-)
S.F. le 26/07/2005 :
Une gestion moins stricte des catégories ? Actuellement ce n'est pas possible de lister les fils à propos d'un sujet précis, mais uniquement par catégorie. Que faire si je veux parcourir les carnets dédiés à ubuntu, alors que ce site est dans la catégorie "Bio-Informatique" ?
David, biologeek le 28/07/2005 :
@mat : j'attends la refonte ;)
@nud : je ne crois pas que l'opml supporte les tags, je vais voir s'il est possible de contourner ça...
Play le 30/07/2005 :
Python, c'est le bien. Thanks pour ce script. Je ne l'ai pas encore testé mais l'idée est là. Tiens-nous au courant de tes développements ! Perso, j'utilise Vim/Cream en "noexpandtab" avec un tabstop de 4 ou 8 en fonction de la lourdeur du code.
David, biologeek le 13/08/2005 :
Salut Play,
Tiens tiens, pour quelqu'un qui ne jurait que par Perl ;)
Ok pour ta config, il faut que je teste plus en profondeur vim, par contre je te conseille 4 espaces pour l'indentation, c'est ce qui est "standard" en python.
bistouri le 24/08/2005 :
Merci pour le script, j'ai quelques fichiers OPML qui seront très heureux de faire un petit régime. :)