A l'époque où je fûs animateur multimédia, gérant un pôle multimédia, la plus grande crainte de notre structuré, une bibliothèque, était les dérives qu'un espace publique multimédia pouuvait avoir, notamment la visualisation d'images qui ne doivent pas se montrer en publique, et encore moins avec des publics mineurs. A l'époque, où le net était en train de se développer, il n'existait pas de "logiciel de contrôl parental".

Sans ce type de logiciel, j'ai voulu voir comment faire parler un historique de navigation. j'ai choisis le navigateur Firefox. Ce dernier utilise une base de données SQLite pour enregistrer toutes les données que ce dernier peut avoir besoin ; historique, bookmarks, préférences.... Ici nous allons faire parler l'historique.

Dans votre home (Linux/mac) ou dans votre répertoire utilisateur dans Windows, nous avez un dossier caché .mozilla (oui oui il commence par un point puisque c'sst un dossier caché, norme linux) qui comporte par mal de données. Dans ce dossier, vous aller retrouver tous les profils déclarés dans votre navigateur. En général, rares sont ceux qui déclarent plusieurs profils mais on peut le faire. Allez dans le répertoire du profil vous interessant, si vous n'en avez pas déclarer, allez dans le dossier qui comporte la chaine "default".

La,  vous allez retrouver le fichiers places.sqlite. Vous pouvez en faire une copie, et l'ouvrir avec https://sqlitebrowser.org/ ou encore avec https://sqliteonline.com/ (attention, on ne sais pas si les datas sont gardées ou pas). Importez sur ce site le fichiers de vos données et vérifiez que vous avez bien l'historique.

Une fois cette confirmation effectuée, maintenant que vous êtes sûr que ce fichier est rempli, nous allons voir comment scripter les choses pour exploiter ces données facilement. Je me base cette fois-ci sur Linux, mais je pense que c'est tres facilement adaptable sur d'autres OS. Pour ce faire, commencez par installer sqlite 3.

La commande suivante est assez facile à comprendre mais je vais toutefois la commenter :

sqlite3 -header -csv /home/sebastien/.mozilla/firefox/default/places.sqlite "select p.url,h.visitdate from mozhistoryvisits as h, mozplaces as p where substr(h.visitdate, 0, 11) >= strftime('%s', date('now')) and p.id == h.placeid order by h.visitdate;">liste.txt

Cette commande permet d'exporter en CSV le fichiers d'historique (places.sqlite), en selectionnant l'URL, la date de visite de la table mozhistoryvisits. L'ensemble des résultats sera exporté dans le fichiers liste.txt trié par date. La restriction permet de sortir les dates de visites supérieures ou égales à la date du jour, la deuxieme restriction n'étant qu'une simple jointure entre dex tables. Le résultat sera stocké dans liste..txt.