Table des matières

Gwibber

Se base sur mon article de blog Nettoyer la base de donnée de Gwibber et parle de Gwibber qu'on ne présente plus.

Structure

Une base de donnée SQLite3 ~/.config/gwibber/gwibber.sqlite, 5 tables

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).

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.