Pour remettre un petit peu de vie dans ce blog, je vous propose un article de pure bidouille. On va tripatouiller les fichiers de configuration de firefox pour obtenir des informations telles que l’historique, les marques page …
Quand on fait une recherche sur l’amélioration des performances de firefox, on tombe souvent sur ce type d’article par exemple (j’aurais pu choisir un autre site, il y a une foule d’articles sur le sujet). Ça parle d’appliquer l’action vacuum sur les fichiers de configuration de firefox. Ok c’est cool on a un firefox plus speed (je suis pas sur que ça change grand chose) mais c’est pas très fun. Le plus intéressant, les fichiers de configuration sont des basses de données tournant avec sqlite. Donc ça devient super simple de récupérer ces informations pour les utiliser dans une autre application par exemple.
Enfin on arrive aux ligne de commande. Je vous laisse vous débrouiller pour installer sqlite3 sur votre système et je vous conseille de sauvegarder les fichiers sqlite que vous manipulez, on est jamais trop prudent. (même si je n’ai pas suivi mon propre conseil )
Pour commencer, on va aller dans le dossier de votre profil firefox.
$cd ~/.mozilla/firefox/ $ls mci61le1.default profiles.ini se1rptc9.Default User $cd mci61le1.default
Rien de compliqué ! Voyons voir les fichiers sqlite qu’on peut explorer
$ls *.sqlite addons.sqlite downloads.sqlite messages.sqlite signons.sqlite ubiquity_suggestion_memory.sqlite chromeappsstore.sqlite extensions.sqlite permissions.sqlite startup.sqlite urlclassifier3.sqlite content-prefs.sqlite formhistory.sqlite places.sqlite ubiquity_ann.sqlite webappsstore.sqlite cookies.sqlite jetpack_ann.sqlite search.sqlite ubiquity_skin_memory.sqlite
Oui chez moi il y a de quoi s’amuser. Il y a une bonne partie des fichiers sqlite qui viennent d’extensions comme ubiuity, jetpack .…
On va s’intéresser au fichier places.sqlite qui gère l’historique et les marques pages. D’après la doc voila les tables disponibles
- moz_anno_attributes – Annotation Attributes
- moz_annos – Annotations
- moz_bookmarks – Bookmarks
- moz_bookmarks_roots – Bookmark roots i.e. places, menu, toolbar, tags, unfiled
- moz_favicons – Favourite icons – including URL of icon
- moz_historyvisits – A history of the number of times a site has been visited
- moz_inputhistory – A history of URLS typed by the user
- moz_items_annos – Item annotations
- moz_keywords – Keywords
- moz_places – Places/Sites visited – referenced by moz_historyvisits
On va se connecter pour voir ça.
$sqlite3 places.sqlite
Maintenant on se trouve dans la ligne de commande de sqlite.
J’ai trouvé 3 commandes intéressantes pour commencer
.help listant l’ensemble des commandes.
.tables listant la liste des tables
.schema affiche le schéma de la table donnée en argument.
sqlite> .schema moz_places CREATE TABLE moz_places (id INTEGER PRIMARY KEY, url LONGVARCHAR, title LONGVARCHAR, rev_host LONGVARCHAR, visit_count INTEGER DEFAULT 0, hidden INTEGER DEFAULT 0 NOT NULL, typed INTEGER DEFAULT 0 NOT NULL, favicon_id INTEGER, frecency INTEGER DEFAULT -1 NOT NULL, last_visit_date INTEGER, guid TEXT); CREATE INDEX moz_places_faviconindex ON moz_places (favicon_id); CREATE INDEX moz_places_frecencyindex ON moz_places (frecency); CREATE UNIQUE INDEX moz_places_guid_uniqueindex ON moz_places (guid); CREATE INDEX moz_places_hostindex ON moz_places (rev_host); CREATE INDEX moz_places_lastvisitdateindex ON moz_places (last_visit_date); CREATE UNIQUE INDEX moz_places_url_uniqueindex ON moz_places (url); CREATE INDEX moz_places_visitcount ON moz_places (visit_count);
Voila deux exemples d’extraction :
pour afficher les 20 sites les plus visités dans votre historique. Si vous connaissez sql c’est tout simple pour les autres la doc est facile à trouver.
sqlite> select url from moz_places order by visit_count DESC limit 20;
Attention: quand vous lancez une requête n’oubliez pas le ; à la fin.
la liste des sites en marque page que vous avez le plus visités
select url, visit_count from moz_bookmarks t1 inner join moz_places t2 on t1.fk = t2.id order by visit_count DESC limit 10;
Je vous laisse maintenant trouver des idées d’utilisation de cette bidouille.
Bonne soirée et à la prochaine