I have a lot of tabs open in Firefox. After I close Firefox and then run it again, the tabs are there. That's all right.
However, from time to time, Firefox crashes and my tabs are lost. How开发者_如何转开发 do I get the open tabs and backup the list to some file?
(With tabs in a file, I can also use Git, SVN, or whatever to store them and optionally find some link 'that I saw in my browser but can't remember what it was'.)
What I got so far:
I'm able to get some URLs, but that's doesn't seem to be exactly what I see in Firefox:
$c = ((gc c:\Users\..\AppData\Roaming\Mozilla\Firefox\Profiles\xfvj8vd5.default\sessionstore.js ) -join '')
$sess = [Jayrock.Json.Conversion.JsonConvert]::Import( $c.trim('()') )
$sess.windows[0].tabs |
% { $_.entries } |
% { $_.url } |
Select-Object -Unique
Please, don't tell me "use this addon or that addon". I really would like do it as I described.
Using the JSON module from PoshCode, this looks right (bear in mind: I tested this on Firefox 4, where the Tab Panorama results in "hidden" tabs, ymmv).
ConvertFrom-Json -File ~\AppData\R*\M*\F*\P*\*\sessionstore.js -Type PSObject -EA 0 |
Select -Expand Windows | Select -Expand Tabs |
Where { !$_.hidden } | ForEach { @($_.Entries)[-1] } |
Select Title, Url
All the * in the first line are just to make it short. Feel free to expand that to the full path if you care about the (milli)seconds spent searching.
I'd recommend using brotab to get the URLs of all open tabs:
pip install brotab
brotab install
Install the web extension as well: https://addons.mozilla.org/en-US/firefox/addon/brotab/
Restart Firefox, and you can use brotab list
and parse it as so:
bt list | awk -F'\t' '{
print $2
}' > urls-backup.txt
Then open all URLs in urls-backup.txt
with normal Firefox:
while read url; do
firefox "$url"
done < urls-backup.txt
not in PowerShell but I recently faced this problem so maybe this onliner can help someone:
cat recovery.js | sed 's#{"url":"#\n\n#g' | cut -d'"' -f1 | grep . | sort -u
#Test in Firefox 5.0
$sessionStoreFile = "$env:APPDATA\Mozilla\Firefox\Profiles\*.default\sessionstore-backups\recovery.js"
$sessionStoreFileExists = Test-Path $sessionStoreFile
If($sessionStoreFileExists -eq $False) {
#Test in Firefox 2.0, 3.0 and 4.0
$sessionStoreFile = "$env:APPDATA\Mozilla\Firefox\Profiles\*.default\sessionstore.js"
}
(Get-Content -Encoding UTF8 -Raw -Path $sessionStoreFile).Trim('()') | ConvertFrom-Json |
Select -Expand Windows | Select -Expand Tabs |
Where { !$_.hidden } | ForEach { @($_.Entries)[-1] } |
Select Url, Title | Export-Csv -Path $CsvFile -Encoding UTF8 -NoTypeInformation
You can download detail SQL script from how to export all URLs of Firefox tabs at once(PowerShell)
精彩评论