PROJET AUTOBLOG


Planet-Libre

source: Planet-Libre

⇐ retour index

blog-libre : Récupérer les bookmarks de Firefox en ligne de commande (en jouant avec sqlite)

jeudi 26 juillet 2018 à 08:05

Depuis que j’utilise l’astuce du Ctrl+l sur Firefox, je me base énormément sur mes bookmarks (marque-pages). L’étape suivante était de pouvoir les récupérer en ligne de commande (pour faire des trucs rigolos avec). Ça tombe bien, ça va me permettre de vous montrer un peu sqlite.

sqlitebrowser

Sur Ubuntu/Debian un apt install sqlitebrowser vous installera sqlitebrowser, à mon sens la meilleure application graphique pour les bases sqlite. Afin de jouer avec la base sqlite Firefox qui nous intéresse, on lancera sqlitebrowser ~/.mozilla/firefox/*.default*/places.sqlite &. Je vous invite ensuite à cliquer sur l’onglet Parcourir les données puis dans Table regarder moz_boomarks et moz_places. Ce sont les deux tables qui vont nous intéresser.

Dans l’onglet Exécuter le SQL :

Interroger sqlite en ligne de commande

On peut tester nos requêtes SQL, chercher ce qui nous intéresse dans les tables mais comment récupérer les résultats directement depuis la ligne de commande ? On aura besoin de apt install sqlite3 puis echo 'select url from moz_places,moz_bookmarks where moz_places.id=moz_bookmarks.fk;' | sqlite3 ~/.mozilla/firefox/*.default*/places.sqlite. C’est simple… quand on connaît.

Voici la ligne de commande complète que je vous recommande echo 'select url from moz_places,moz_bookmarks where moz_places.id=moz_bookmarks.fk;' | sqlite3 ~/.mozilla/firefox/*.default*/places.sqlite | grep '^http' > ~/firefox.bookmarks. La seule subtilité est le grep '^http' qui va sélectionner uniquement les lignes commençant par http en effet il est fort probable que vous ne vouliez pas les “place:” et les bookmarklets (comme celui du Jdh).

Moi perso je voulais encore autre chose les url des bookmarks ainsi que leurs titres :

echo 'select moz_places.url,moz_bookmarks.title from moz_places,moz_bookmarks where moz_places.id=moz_bookmarks.fk;' | sqlite3 ~/.mozilla/firefox/*.default*/places.sqlite | grep '^http' > ~/firefox.bookmarks

Fonction ff

ff() {if [[ "$#" -eq 0 ]]then	(firefox >/dev/null 2>&1 &)elif [[ "$#" -gt 0 ]] then	fzf --bind 'right:accept' --multi --literal --exact --query="$*" --select-1 --exit-0 --print0 <~/firefox.bookmarks | sed -z 's/|.*//' | xargs -0 -I '{}' bash -c '(firefox "{}" >/dev/null 2>&1 &)'fi}

Vous devez copier cette fonction par exemple dans votre ~/.bashrc. Vous aurez besoin de fzf (et du man hé hé hé). Si vous tapez ff, ça vous lancera Firefox. J’ai “https://www.journalduhacker.net/newest|jdh” dans mon ~/firefox.bookmarks, si je tape ff jdh ou ff hack, ça me lancera https://www.journalduhacker.net/newest. Si vous tapez ff h (http étant un résultat présent sur chaque ligne) vous afficherez tous les bookmarks et pourrez lancer plusieurs bookmarks simultanément en les sélectionnant avec Tab.

Je ne donne aucune explication de plus : 1/ Devoir de vacances (j’ai été sympa, j’ai viré des paramètres) 2/ Pour apprendre et comprendre, il faut nécessairement mettre les mains dedans, il ne suffit pas de lire, il faut pratiquer, tester, se tromper 3/ Je me suis dit que certains apprécieraient de chercher à comprendre par eux-mêmes, il y a un grand plaisir à découvrir et comprendre par soi-même 4/ L’article sur fzf arrivera un jour mais va être long ha ha ha

Tcho !

Gravatar de blog-libre
Original post of blog-libre.Votez pour ce billet sur Planet Libre.