URL de saída das abas abertas do firefox no terminal

17

Eu gostaria de descobrir as URLs das abas do Firefox atualmente abertas com um comando de terminal. Existe alguma possibilidade?

Dessa forma, eu seria capaz de escrevê-los em um arquivo de texto e analisá-los depois; e recursos seguros (muitas vezes tenho muitas guias abertas). Eu sei que há um add-on para o firefox, mas eu ficaria mais confortável escrevendo meu próprio script.

    
por aldorado 28.08.2013 / 11:14

4 respostas

8

As URLs atualmente abertas das abas do Firefox abertas são armazenadas no arquivo sessionstore.js , que está localizado em algum lugar no diretório $HOME/.mozilla/firefox/XXXXXXXX.default .

Então, você pode começar de algo assim:

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

Usando cat , podemos exibir esse arquivo e, com a ajuda de sed , egrep e cut , selecionamos apenas as URLs das guias abertas do Firefox desse arquivo.

    
por Radu Rădeanu 28.08.2013 / 14:52
5

Essa informação é armazenada em $ HOME / .mozilla / firefox / * default / sessionstore.js e seu formato é json.

O seguinte exemplo foi feito para trabalhar com o PHP. Ele percorre todas as janelas do Firefox, todas as guias e obtém as informações relevantes, que é a última entrada dentro de "entradas". Se pudéssemos usar o xpath para analisá-lo, seria algo como: / windows / * / tabs / last () / url (meu conhecimento xpath está enferrujado).

Você pode copiar / colar esse código em um 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 : Com o perl (mas primeiro, o sudo apt-get instala o 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";
    }
}'
    
por Hugo Vieira 28.08.2013 / 16:09
0

É assim que você pode extrair o URL atual da guia principal / ativa no 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"];'

Explicação: Primeiro, ele encontra o índice da guia ativa $tindex e, em seguida, o índice da entrada do histórico ativo nesta guia $eindex .

A cada 15 segundos, o Firefox cria um backup em *default/sessionstore-backups/recovery.js .

    
por Lenar Hoyt 21.03.2015 / 22:49
0

Usando o bash, encontrei a seguinte resposta. Requer apenas pacote: jq. Pode ser instalado com: apt-get install jq

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

    
por Andras Mitzki 01.11.2015 / 10:37