在线的
在运行的 Firefox 会话中,使用 Mozilla Add-on API 很容易提取数据。我编写了一个简单的Tab Count Logger扩展来执行此操作,并将计数保存到 SQLite 数据库。
代码的相关部分是:
const tabs = require("sdk/tabs");
const windows = require("sdk/windows").browserWindows;
console.log("Windows: " + windows.length + "; tabs: " + tabs.length);
离线
打开的选项卡存储在sessionstore.js
配置文件目录中,而不是 SQLite 中。这个文件是 JSON。一个统计标签的脚本:
#!/usr/bin/env python3
# Count open tabs from a firefox profile
# Working directory is the root of a Firefox profile.
import json
j = json.loads(open("sessionstore.js", 'rb').read().decode('utf-8'))
def info_for_tab(tab):
try:
return (tab['entries'][0]['url'], tab['entries'][0]['title'])
except IndexError:
return None
except KeyError:
return None
def tabs_from_windows(window):
return list(map(info_for_tab, window['tabs']))
all_tabs = list(map(tabs_from_windows, j['windows']))
print('Statistics: {wins} windows, {tabs} total tabs'.format(wins=len(all_tabs), tabs=sum(map(len, all_tabs))))
将其保存到 后~/bin/firefox_count_tabs
,您可以获得所有配置文件的信息,如下所示:
for i in ~/.mozilla/firefox/*.*; do test -d $i && (echo "== $i =="; cd $i; ~/bin/firefox_count_tabs ); done