=====Gwibber=====
Se base sur mon article de blog [[http://mart-e.be/post/nettoyer-la-base-de-donnee-de-gwibber|Nettoyer la base de donnée de Gwibber]] et parle de [[http://gwibber.com/|Gwibber]] qu'on ne présente plus.
====Structure====
Une base de donnée SQLite3 ''~/.config/gwibber/gwibber.sqlite'', 5 tables
* **accounts** : les credentials pour les comptes connectés, token OAuth,...
* **searches** : les recherches faites depuis l'application (vous utilisez ça franchement ?)
* **streams** : quand on suit une conversation (bof)
* **messages** : les status, enfin un truc utile
* **sqlite_sequences** : pas compris à quoi ça sert
//TODO: identifier le rôle des champs dans ''messages'', en particulier la colonne ''streams''//
====Les commandes====
Gwibber exécute une fonction ''maintenance()'' au démarrage qui sert, en gros, à supprimer les 2000 plus vieux messages. Sauf qu'il existe d'autres types que ''messages'' stockés dans la table ''messages'' (je sais, il faut suivre).
sqlite> select count(*), stream from messages group by stream;
1352|images
3797|links
4680|messages
44|private
7|profile
640|replies
41|send_thread
4733|user
1248|videos
La commande pour supprimer les 2000 plus vieux messages est la suivante :
DELETE FROM messages WHERE operation = 'receive' AND stream = 'messages' AND time IN (SELECT CAST (time AS int) FROM (SELECT time FROM messages WHERE operation = 'receive' AND stream = 'messages' AND time != 0 ORDER BY time ASC LIMIT (SELECT COUNT(time) FROM messages WHERE operation = 'receive' AND stream = 'messages' AND time != 0) - 2000) ORDER BY time ASC);
En remplaçant les 3 ''stream = 'messages''' par le type que vous voulez (''links'' a tendance à grandir très fort).
On oublie pas de faire la commande ''VACUUM;'' pour purger la base de donnée après avoir fait cela pour réduire la taille du fichier SQLite.
====Cron====
Un jour où je serai motivé, je mettrai tout ça dans un cron.
====Bug====
Le 12 août 2012, j'avais fait un bug report à ce sujet là (le nombre de 'links' qui augmentait beaucoup trop) sur launchpad mais il est resté sans réponse à ce jour (novembre 2012).
[[https://bugs.launchpad.net/gwibber/+bug/1035962|Bug #1035962 Maintenance does not clean links]]
Si vous pensez que c'est un problème qui mérite d'être résolu, n'hésitez pas à aller voter sur Launchpad pour attirer l'attention des développeurs.