Come cercare i segnalibri di Firefox?

4

È possibile eseguire automaticamente una ricerca di testo completo (o anche un'espressione regolare migliore) su tutti i siti Web che ho inserito nell'elenco dei miei segnalibri?

Modifica

C'è qualche altro browser dove è possibile?

    
posta student 08.03.2011 - 21:17

2 risposte

1

Forse puoi usare il backup .json trovato all'interno di ~/.mozilla/firefox/'profile name'/bookmarkbackups/ per cercare i siti web e quindi cercare espressioni all'interno di quei siti web.

    
risposta data Felipe 09.03.2011 - 00:55
1

Il seguente script accederà al backup automatico più recente dei tuoi segnalibri ed emetterà una richiesta per ciascun link HTML .. che è come testo in chiaro formattato .. Utilizza un browser Web Terminal chiamato links (è nel repository di Ubuntu) ... Usa anche un editor di testo leggero chiamato leafpad , quindi puoi modificare, aggiungere, cambiare i link che vuoi (anche nel repository Upunto) ...

Non insegue i collegamenti .. ti dà solo la pagina che collega il link a ...

L'output della pagina web acquisito viene scritto in un file di testo aperto in gedit (ma puoi modificarlo per utilizzare grep, sed, awk, vim, less ... ecc ...)

Ecco lo script: (Probabilmente ha alcuni bug, ma non scrive sul file della cronologia dei segnalibri, li legge solo ...

#!/bin/bash 
#
# mame: ffhtmllinks
#
# requires:  firefox ...(The source of the bookmarks, using the auto backup list)
#                            TODO: use current list (but where is it?) 
#            leafpad ...(It acts as an editable dialog)
#            links   ...(Terminal web browser, which can write formatted document to stdout)

bname=$(basename $0)
ffdir="$HOME/.mozilla/firefox"
[[ ! -e "$ffdir" ]] && { echo "ERROR: Could not find Firefox config directory:" ; echo "$ffdir" ; exit 1 ; } 
echo  -e "\n# Profile Name\tDirectory\n= ============\t================"
< "$ffdir/profiles.ini" sed -n \
-e "/^\[Profile[0-9]\]$/,/^Path=/{
     :top
         s/^Name=\(.*\)//; t holdname 
         s/^Path=\(.*\)//; t havepath 
         n; b top
     :holdname
         h; n; b top 
     :havepath
         x; G; s/\(.*\)\n\(.*\)/:\t/p
}" | nl -w 1 -s ' ' > "$ffdir/$bname.names"
cat "$ffdir/$bname.names"
echo  -e "\nType the Name (or line number) of the Profile" \
         "\n         whose bookmarks you want to search"
read name
name="${name%% /}"
name="${name## /}"
<"$ffdir/$bname.names" sed -n "/^\($name .*\)\|\([0-9]\+ $name\)$/ p" > "$ffdir/$bname.sel"     
selct=$(<"$ffdir/$bname.sel" wc -l)
(( selct != 1 )) && { echo "ERROR: Could not find Profile:" ; echo "$name" ; exit 2 ; }

profdir="$ffdir/$(<"$ffdir/$bname.sel" sed -n "s/^[0-9]\+ [^"$'\t'"]\+"$'\t'"\(.*\)$//p")"
bbakdir="$profdir/bookmarkbackups"     
[[ ! -e "$profdir"  ]] && { echo "ERROR: Could not find Firefox Profile directory:" ; echo "$profdir" ; exit 3 ; } 
[[ ! -e "$bbakdir"  ]] && { echo "ERROR: Could not find Firefox Bookmark Backup directory:" ; echo "S$bbakdir" ; exit 4 ; }
bbakjson="$(for f in "$bbakdir/bookmarks"* ; do echo "$f" ; done | sed -n \$p)"
[[ ! -e "$bbakjson" ]] && { echo "ERROR: Could not find Firefox Bookmark Backup .json file:" ; echo "  $bbakjson" ; exit 4 ; }
bbakhtml="$ffdir/$bname.bbakhtml"     
<"$bbakjson" sed -n "s/,\"uri\":\"http/\n"$'\x01'===$'\x01'"http/gp" \
            |sed -n "s/^"$'\x01'"==="$'\x01'"\([^"\""]\+\)\".*/\n\n/p" \
            |sed "/^$/ d" \
            >"$bbakhtml"
echo "===="
echo "INFO: About to open the list of bookmark links in a text editor (leafpad)..."
echo "      You can modify, add or remove links as you like..."
echo "      It is only a temporary file, so you won't loose your bookmarks..."
echo "  NB: You must actually EXIT 'leafpad' before this process can proceed."
echo
echo -n "Press Enter to open the bookmarks list in 'leafpad'... "
read x
echo
div="####################################################################################"     
pagedump="$ffdir/$bname.bbakdump" ; cp /dev/null "$pagedump"
linkcnt=$(<"$bbakhtml" wc -l); linklnb=1
<"$bbakhtml" leafpad 2>/dev/null
echo "======================================="
( while IFS= read -r link ; do
  echo -e "\n\n$div\n$div\n$div\n# \n# Link $((linklnb++)) of $linkcnt\n# \n"
  links -dump "$link"  
done <"$bbakhtml" ) |tee >( sed -n p >>"$pagedump" ) | sed -n p
wait 2 # TODO need a wait loop here for asynchronous process-substitution (sleep will have to do for now)
gedit "$pagedump"
exit
#
    
risposta data Peter.O 08.04.2011 - 12:36

Leggi altre domande sui tag