web-dev-qa-db-fra.com

URL de sortie des onglets firefox ouverts dans le terminal

J'aimerais connaître les URL des onglets firefox actuellement ouverts avec une commande de terminal. Y a-t-il une possibilité?

De cette façon, je pourrais les écrire dans un fichier texte et les regarder plus tard. et des ressources sûres (j'ai souvent de nombreux onglets ouverts). Je sais qu'il existe une extension pour Firefox, mais je serais plus à l'aise d'écrire mon propre script.

17
aldorado

Les URL actuellement ouvertes des onglets Firefox ouverts sont stockées dans le fichier sessionstore.js qui se trouve quelque part dans le répertoire $HOME/.mozilla/firefox/XXXXXXXX.default.

Donc, vous pouvez partir de quelque chose comme ceci:

cat $HOME/.mozilla/firefox/*default/sessionstore.js | sed "s/{/\n/g" | egrep -o '"url".*"scroll"' | cut -d\" -f4

En utilisant cat, nous pouvons afficher ce fichier et à l'aide de sed, egrep et cut, nous sélectionnons uniquement les URL des onglets Firefox ouverts à partir de ce fichier.

8
Radu Rădeanu

Ces informations sont stockées dans $ HOME/.mozilla/firefox/* default/sessionstore.js et son format est json.

L'exemple suivant a été conçu pour fonctionner avec PHP. Il parcourt toutes les fenêtres firefox, tous les onglets et obtient les informations pertinentes qui constituent la dernière entrée à l'intérieur des "entrées". Si nous pouvions utiliser xpath pour l’analyser, ce serait quelque chose comme:/windows/*/tabs/last ()/url (ma connaissance de xpath est rouillée).

Vous pouvez copier/coller ce code sur un terminal:

cat $HOME/.mozilla/firefox/*default/sessionstore.js | php -r '
$json=json_decode(fgets(STDIN), TRUE);
foreach($json["windows"] as $w)
foreach($w["tabs"] as $t)
echo end($t["entries"])["url"]."\n";'

EDIT: Avec Perl (mais d’abord, Sudo apt-get install libjson-pp-Perl):

cat $HOME/.mozilla/firefox/*default/sessionstore.js | Perl -e '
use JSON qw( decode_json );
my $json = decode_json(<STDIN>);
foreach my $w ( @{$json->{"windows"}} ) {
    foreach my $t ( @{$w->{"tabs"}} ) {
        print $t->{"entries"}[-1]->{"url"}."\n";
    }
}'
5
Hugo Vieira

En utilisant bash j'ai trouvé la réponse suivante. Il ne nécessite que le paquet: jq. Il peut être installé avec: apt-get install jq

jq '.windows[].tabs[].entries[].url' ~/.mozilla/firefox/xkxwaf4z.default/sessionstore-backups/recovery.js

0
Andras Mitzki

Voici comment extraire l'URL actuelle de l'onglet le plus en avant/actif dans Firefox:

cat recovery.js | php -r '$json=json_decode(fgets(STDIN), TRUE); $tindex = $json["windows"][0]["selected"]-1; $eindex = $json["windows"][0]["tabs"][$tindex]["index"]-1; echo $json["windows"][0]["tabs"][$tindex]["entries"][$eindex]["url"];'

Explanation: Tout d'abord, il trouve l'index de l'onglet actif $tindex, puis l'index de l'entrée d'historique active dans cet onglet $eindex.

Toutes les 15 secondes, Firefox crée une sauvegarde dans *default/sessionstore-backups/recovery.js.

0
Lenar Hoyt