deliciousbackup - Sauvegarder vos favoris delicious dans une base sqlite avec un script python
Par Nicolas Steinmetz. jeudi 5 mars 2009, 01:24. Projets backup delicious favoris pydelicious python sqlite | Lien permanent.
Suite à la déconvenue du service Ma.gnolia, je me suis décidé à automatiser les sauvegardes de mes favoris delicious fait de temps à autre quand j'y pensais. Ce fut l'occasion pour jouer avec pydelicious et sqlite, le tout en Python bien sur pour se faire la main.
Le stockage en base se fait de "deux façons" :
- Export à plat : les bookmarks sont posés "tels quels" dans la table "post" avec le contenu des champs
- Export "relationnel" : en plus de l'export à plat, les tables tags et post_tag (qui lie un favori à ses tags) sont peuplées.
Ainsi, vous pouvez faire ce que bon vous semble avec vos backups ensuite... (perso, j'ai des objectifs de réutilisation de cette base à d'autres fins...
)
Cela donne donc deliciousbackup.
Très simple d'utilisation : après avoir configuré les variables USERNAME, PASSWORD et DBNAME, il vous suffit de faire :
sh python deliciousbackup.py
Il vous reste ensuite plus qu'à mettre cela dans une crontab par ex.
Attention à ne pas lancer ce script trop souvent si vous ne voulez pas voir votre IP être bannie temporairement. Si vous voulez faire des tests, remplacez :
python posts = dlcs.posts_all()
par :
python posts = dlcs.posts_recent(count='5')
Je suis preneur de toute amélioration possible de mon script (sous licence BSD).
Commentaires
J'ai fait plus simple, je suis passé à Diigo, qui sauve aussi automatiquement sur Delicious. La probabilité que les deux ferment est suffisamment faible pour que je n'ai pas peur...
Je m'étais penché sur une solution de sauvegarde l'autre soir, mais sans aller jusqu'au bout. Je vois que tu en as eu le courage, c'est cool
@NicoH : c'est un peu de la fuite en avant ça...
@giz404 : ça fait suite à notre discussion et de toutes façons, j'ai pour projet de me créer mon application de favori (basé sur django, comme d'hab) qui elle pousserait sur delicious... donc il me fallait dans tous les cas récupérer l'existant, d'où l'intérêt du mode relationnel
C'est la faute à Delicious? Y a t'il un maximum de tags ou posts à télécharger?
Si tu regardes le dernier bookmark sauvé, quel sont ses tags associés ? J'ai plutôt l'impression que le favori en question n'a pas de tag (d'où l'erreur, je n'ai pas pensé à traiter le cas où un post n'a pas de tag...)
Je regarde ça d'ici au we prochain je pense, j'ai une semaine bien remplie...
Edit : apparemment, ça peut venir aussi du fait que pour delicious PHP et php, c'est pareil alors que pour moi, non. J'ai donc passé tous les tags en minuscules pour éviter ce piège. C'est corrigé dans la dernière version dispo sur bitbucket
- Merci pour le rapport de bug !
Parfait maintenant. 2418 posts, sauvés. Je suis très content!
Merci beaucoup.
De rien - ravi de voir que mon code profite à d'autres