Это вторая версия плагина Bldjid.
Его работа в общих чертах схожа с работой первой версии, поэтому если у вас
есть опыт работы с ним, вы быстро привыкнете и к этому. Если нет, желательно
почитать документацию по первому плагину.

В новой версии появились некоторые важные отличия. Пожалуйста, ознакомьтесь
с ними перед тем как пользоваться плагином Bldjid2.

Главные отличия:

1) В этой версии плагина входы посетителей регистрируются в базе данных sqlite.
Её файл будет создаваться всегда, даже если вы укажете в соответствующей настройке
пустое значение.
2) Bldjid2 собирает больше информации о посетителях, главным образом из их
презенсов, а также опрашивая версию и временную зону. Вы не можете "отключить"
сбор каких-либо из этих элементов (разве что залезете в код и там это исправите,
но в таком случае на поддержку не рассчитывайте, потому что поисковые механизмы
будут прочно привязаны ко всем этим элементам).
3) Эта дополнительная информация должна обеспечивать более точную идентификацию
посетителя, за которым ведётся наблюдение, даже при смене джида (или его отсутствии,
например, когда мы не обладаем правами модератора). Она должна помочь отличать
этого посетителя от других, использующих такую же версию клиента и ОС.
4) Для самых сложных случаев будет добавлена новая функциональность: "alias".
Это своего рода метаконтакт, куда можно будет добавлять разные джиды посетителя,
про которого вы твёрдо уверены, что это один и тот же человек, но плагин принимает
их за разных людей. Таким образом, если вы ставите наблюдение за альясом, все
вновь входящие будут сверяться со всеми элементами, входящими в данный альяс.
5) Кроме времени входа также фиксируется время выхода из конференции. Это сделано
в первую очередь для того, чтобы избежать лишних опросов версии входящих в случае,
когда интервал между выходом и входом довольно мал.
6) Если вы теряете соединение и перезаходите в конференцию, плагин также не будет
опрашивать версии уже находящихся там посетителей, которые на момент потери
соединения там находились. Более того, в этом случае даже новые записи не будут
создаваться, и получится как бы "единая сессия". То же самое происходит и при
ручном закрытии клиента. Впрочем, механизм не так прост, потому что при входе
всё равно проверяется и сравнивается с данными из базы информация из презенса,
поэтому новые посетители будут отмечаться. Кроме того, планируется добавить
"тайм-аут" для принудительного старта "новой сессии" по прошествии нескольких
часов или дней, проведённых вами в оффлайне.
7) Благодаря тому, что все данные о входах собраны в базе данных, вы можете
воспользоваться сторонними средствами (или написать своё) для создания нужных
вам поисковых запросов помимо тех, которые будут встроены в плагин. Например,
вы можете просматривать базу с помощью расширения "SQLite Manager" для Firefox.
(Учтите, что если работать над базой с двух точек одновременно, может произойти
коллизия, когда плагин пытается писать в базу в момент, когда вы просматриваете
её с помощью менеджера.)
8) Если вы вели логи с помощью первой версии плагина, вы можете сконвертировать
их в формат базы данных и затем продолжать собирать данные уже в неё. Эти записи
будут не настолько информативны, но всё равно могут пригодиться для статистики
или создания альясов. Читайте README_1st.ru о конверсии.
9) Помимо базы данных будет вестись лог-файл bldjid2.log, куда будут писаться
сообщения плагина (например, извещения об автоматических действиях, совершённых
плагином во время вашего отсутствия).
10) Добавлена новая команда /bldquery. С её помощью можно осуществлять очень
гибкий поиск в базе данных. У команды имеется четыре следующие подкоманды:
eval, save, get, list.
	"eval" даёт возможность выполнить скрипт Tcl, который вы должны написать
на следующей линии (линиях). Этот скрипт может и должен включать запросы
к базе данных. Поскольку база уже инициирована в плагине, вы должны использовать
для обращения к ней её внутреннее имя "db". Заметьте, что эта субкоманда "eval"
не имеет ничего общего с одноимённой командой тикля -- здесь это всего лишь
ключевое слово команды /bldquery.
Синтаксис:
/bldquery eval
здесь идёт тело tcl-скрипта
оно может занимать
несколько строк
Пример:
/bldquery eval
set a "SELECT DISTINCT nick, jid, grp, id, ts \
FROM visitors WHERE grp LIKE 'tkabber-t%' AND nick LIKE 'big%'"
foreach {nick jid grp id ts} [db eval $a] {
puts "$id : [clock format $ts -format %+] : $nick : $jid : $grp"
}
	"save" позволяет вам сохранять запросы, которые вы хотите использовать в будущем.
Эта субкоманда требует после себя аргумент: имя запроса (оно может содержать пробелы).
Пример:
/bldquery save поиск Gajim-ов
здесь идёт скрипт, который ищет
все входы клиентов Gajim
	"get" даёт вам возможность вытащить из базы сохранённый ранее запрос.
Для этого нужно указать его имя.
Пример:
/bldquery get поиск Gajim-ов
	"list" выводит список сохранённых запросов. Эта субкоманда не требует после себя
аргументов и тоже не имеет ничего общего с командой тикля "list".
