учет кол-ва табов в mozilla firefox (на примеру3.6)


bliznezz аватар

bliznezz - Posted on 12 Март 2010

эта информация вместе с url-ами и прочей интересной информацией о браузере хранится в профиле, в файле sessionstore.js, обновляется... ну практически сразу. информация хранится там в виде дерева JSON... а мне захотелось получить кол-во открытых табов. ну с JSON работать не умею, а писать парсер.... я слегка офигел, и на таком уровне с awk не дружу, попросил знакомого питонщика побыстренькому нацарапать скриптик:
jsn.py

try:
    import simplejson as json
except ImportError:
    import json
import sys
jsf = file(sys.argv[1])
js_body = jsf.read().strip('()')
js_dict = json.loads(js_body)
print len(js_dict['windows'][0]['tabs'])

запускается типа так:

$ python ./jsn.py /path/to/sessionstore.js

ну или шебанг выставить #!/usr/bin/env python поставить(требуется python 2.6 или выше), всеравно первый аргумент скрипта будет взят как имя файла.

сейчас думаю как правильно скрестить его с rrdtools.
UPD
скрестил

ВложениеРазмер
firefox-opentabs-stat.png10.7 кб
0
Ваша оценка: Ничего

По вопросу парсинга sessionstore.js тоже озадачивался... Тут скриптик на баше, а тут однострочники на perl, sed...

цикаво. нужно будет посмотреть внимательней

Не могу никак понять, зачем может понадобиться это прикручивать к rrdtools...

Лично у меня vimperator показывает кол-во табов (на данный момент 110) :)

у меня номера табов были отключены, так как глючат с Tree Style Tabs

У меня Tree Style Tabs тоже стоит и никогда не наблюдал глюков... Может потому, что не использую древовидную структуру табов (использую только чтобы табы расположить справа)?

Попробуй ветки, нахожу очень удобным Ж:-)

Блин... Это реально удобно )) Но вот то, что нельзя номера табов отображать на самих табах, оооочень сильно расстраивает :(( Пробовал как на иконке номера писать (:set guioptions=N), так и справа от нее (:set guioptions=n), в обоих случаях не работает :(( Точнее работает, но вот при открытии вкладке в новом табе, она открывается в конце всех табов, а не добавляется в дерево (( Эх... Очень жаль...
Т.ж. все восможные варианты перебрал для Tree Style Tabs, не помогло (((

Тяжко теперь без номеров (((

у меня Tree Style Tabs с древовидной структурой. без vimperator-а.

а хочется просто посмотреть историю изменения:

Историю изменения чего?

парсер картинку в коменте отказался поставить

http://img.flashtux.org/img132b4dc1e798xfbad38db.png

А.. Вот для чего ты это хотел ))) Теперь понятно что за история :))) Прикольно вышло )))

добавил в совет

Изящненько так. Но он считает только табы первого окна.
Я тут подправил, сначало выводит построчно кол-во табов в каждом окне, и последним - общую сумму табов

#!/usr/bin/env python2.6
try:
        import simplejson as json
except ImportError:
        import json
import sys
 
js_dict = json.loads(file(sys.argv[1]).read().strip('()'))
 
for win in js_dict['windows']:
    print len(win['tabs'])
 
# можно выводить табы в каждом окне в формате [51, 49, 97, 107, 52]
# print [len(win['tabs']) for win in js_dict['windows']]
 
print sum([len(win['tabs']) for win in js_dict['windows']])

только что подумал что можно ведь и однострочником сделать :)
тут получается python + zsh (который находит последний измененный sessionstore.js)

python -c "import simplejson as json,sys;print sum([len(win['tabs']) for win in json.loads(file(sys.argv[1]).read().strip('()'))['windows']])" ~/.mozilla/firefox/**/sessionstore.js(om[1])

PS
прикрутишь к rrdtools - делись Ж:-)

Отправить комментарий

Google Friend Connect (leave a quick comment)
loading...
Содержание этого поля является приватным и не предназначено к показу.