Des scripts divers et variés
Le vendredi 14 mai 2010, 11:20 - Lien permanent
J’ai (enfin) fait une page pour décrire les quelques scripts que j’ai fait et qui pourraient servir à d’autres. Pour faciliter la lecture des utilisateurs de flux RSS et pour éviter un clic aux autres, je vais tout recopier dans ce billet, mais la page de référence est sur mon wiki.
J’ai écrit un certain nombre de scripts pour me faciliter la vie de tous les jours. Et oui, comme tout bon informaticien, je suis prêt à passer 8 heures à peaufiner un script qui me fera gagner 30 secondes tous les mois… Mais bon, là n’est pas la question.
Mes scripts
Il se trouve que je pense que certains de ces scripts pourraient être utiles à d’autres, donc dans le plus pur esprit du Logiciel Libre, je les met à disposition sur cet espace de développement. Tous ces scripts sont sous licence GPL v3. Voici une petite présentation.
backup-delicious.py
Un simple script pour sauvegarder ses signets stockés sur delicious.com dans un fichier XML, au cas où Delicious aurait un problème (site cassé, perte de données, politique commerciale à la con, revente de Yahoo, etc.).
birthdaysfromvcard.py
Le script créé un fichier iCalendar avec les anniversaires des gens trouvés dans un fichier vCard (vcf).
Très pratique pour ne plus oublier les anniversaires des ses connaissances (voire de sa famille…)
files2feed.py
Le script créé un ficher Atom XML (équivalent RSS) à partir des derniers fichiers modifiés ou ajoutés dans un répertoire et ses sous-répertoires.
Cas d’utilisation : je partage mes fichiers par le web, et j’aimerais bien proposer un flux RSS pour les mises à jour et les nouveaux fichiers partagés (ici c’est un flux Atom, mais c’est le même principe).
make-songs-list.py
Le script créé un PDF à partir des chansons disponibles pour Performous, un excellent jeu de karaoké.
Il utilise la pochette de l’album si elle est dispo, et essaye d’en mettre un maximum sur le minimum de pages, pour qu’il n’y ait plus qu’à imprimer et à distribuer aux joueurs.
podcast-transcode.py
Cas d’utilisation : je dispose d’un lecteur de vidéos portable que j’utilise dans les transports en commun, mais il n’est pas assez puissant pour décoder les vidéos d’aujourd’hui (résolutions assez élevées, codecs gourmands, etc.) Il faut donc que je convertisse et que je redimensionne les vidéos des podcasts auxquels je suis abonné.
Fonctionnement : le script prend en entrée un flux RSS, et convertit toutes les vidéos incluses en attachement au format AVI/DivX/MP3, en les redimensionnant à la taille demandée. Une fois la conversion effectuée, la balise d’attachement est mise à jour pour pointer sur l’adresse de la vidéo convertie.
Pour les vidéos de TED, le script peut même ajouter les sous-titres s’ils sont dispo, et si le script tedtalksubs.py est installé (c’est à dire dans le PATH). C’est un autre de mes scripts, téléchargeable au même endroit (enfin, dans ce cas-là, dire “de mes scripts” est un peu fort, puisque j’ai quasiment tout pompé sur un autre).
Le script tedtalksubs.py est indépendant, il permet de lister, télécharger et convertir au format SRT les sous-titres des vidéos de TED.
rss-mirror.py
Cas d’utilisation : quand je tombe sur une page web intéressante mais que je n’ai pas le temps de lire là tout de suite, je la sauvegarde dans Instapaper. Le service me fournit ensuite un flux RSS des pages en attente de lecture. Pour utiliser au mieux le temps que je passe dans les transports en commun, j’aimerais y lire ces pages, mais je n’ai pas d’abonnement internet mobile. Par contre, j’ai un lecteur portable qui dispose d’un navigateur web.
Fonctionnement : le script prend un ou plusieurs flux RSS en entrée, et fait un miroir local de toutes les entrées en utilisant wget ou httrack.
Le niveau de profondeur des liens récupérés est configurable, mais par
défaut il ne prend que la page indiquée, pas les liens trouvés sur
cette page. Il créé ensuite un index des pages téléchargées en
utilisant le fabuleux iUI.
Le répertoire de téléchargement peut ensuite être synchronisé sur un lecteur portable, qui n’a alors besoin que d’un navigateur web. Dans mon cas, je l’utilise avec Instapaper, mais n’importe quel flux RSS peut être utilisé. Par exemple, des signets sur Delicious, les favoris de Tiny Tiny RSS ou Google Reader, etc.).
C’est en quelque sorte le lecteur de flux hors-ligne du pauvre
Conclusion
Voilà, si vous avez des commentaires, des remarques, ou des propositions d’amélioration à faire sur ces scripts, n’hésitez pas. Une petite description est disponible en en-tête de chacun d’eux, et vous pouvez les lancer avec --help pour connaître les options disponibles. Ils nécessitent tous au moins python 2.5, les autres dépendances étant spécifiques à chacun des scripts.















Commentaires
vendredi 14 mai 2010, 12:31
Excellent ! Je sens que files2feed va m’être très utile ^^
Merci !
vendredi 14 mai 2010, 12:49
files2feed et podcast-transcode, j’en ai rêvé sans avoir vraiment pris la peine de chercher, et aujourd’hui je tombe dessus en lisant mon flux rss planet fedora-fr ! Vraiment parfait, merci beaucoup
vendredi 14 mai 2010, 15:52
Merci pour les encouragements !
samedi 15 mai 2010, 03:43
Merci de proposer ces scripts ici, c’est très intéressant et didactique !
dimanche 16 mai 2010, 06:15
Merci Aurélien, merci la GPL
Il semble que tu es un adepte des petits logiciels forts utiles. Aussi j’en profite pour savoir si tu ne connais pas celui/ceux qui me permettraient de résoudre un problème récurrent depuis quelques temps.
En effet je suis à la recherche d’un outils qui me permettrait de mettre à jour - sous 2 machines Linux - les fichiers/répertoires qui auraient été modifiés/créés sur l’autre machine.
Certes il y a bien la commande “find -mtime” pour avoir une idée voire permettre l’exécution - encore que je ne me suis pas penché sur la question - après avoir listé les mises-à-jour mais, vu qu’il y a plusieurs comptes sur chacune d’entre-elle, je dois avouer que je suis à la recherche d’un outils plus convivial… s’il existe d’autant que les 2 vont bientot se transformer en 3
dimanche 16 mai 2010, 11:37
@SolomonL : Je ne connais pas les détails de ton problème, mais je te conseille de regarder du côté d’Unison.
lundi 17 mai 2010, 05:45
@Aurélien :
- que ceux que j’ai exposé.
Il n’y a pas d’autres détails - que ce soit à l’insu de mon plein gré ou pas
Mais tu as tout compris.
Du coup avec une recherche complémentaire je suis tombé sur un article de Framasoft qui m’a redirigé aussi vers FullSync. Il me reste plus qu’à tester.
Merci
http://www.framasoft.net/article428…
http://www.framasoft.net/article450…