Ci-dessous, les différences entre deux révisions de la page.
gwibber [2012/11/05 18:33] mart |
gwibber [2019/04/02 11:14] |
||
---|---|---|---|
Ligne 1: | Ligne 1: | ||
- | =====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). | ||
- | |||
- | <code>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</code> | ||
- | |||
- | La commande pour supprimer les 2000 plus vieux messages est la suivante : | ||
- | |||
- | <code>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);</code> | ||
- | |||
- | 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. |