Доброго времени суток.
Подскажите, где можно найти информацию по формату файлов истории tkabber?
В частности, какие символы в сообщении нужно экранировать и как
С уважением, Олег
Формат файлов истории
Submitted by Anonymous on Mon, 07/30/2007 - 11:38
Доброго времени суток. Подскажите, где можно найти информацию по формату файлов истории tkabber? С уважением, Олег »
|
User loginNavigationRecent comments
Active forum topicsPopular contentAll time:Syndication |
В tkabber@c.j.r
В tkabber@c.j.r подсказали посмотреть файл plugins/chat/logger.tcl ( kostix, ещё раз спасибо! )
Проследил путешествие сообщения: от client:message (файл chats.tcl) сообщение без изменения либо с незначительными изменениями и попадает в logger::log_message (файл plugins/chat/logger.tcl), где происходят некоторые замены перед записью в лог.
Но вот откуда вызывается client:message понять не могу. Соответственно, формат сообщения тоже не ясен. Есть идеи?
Похоже, client:message
Похоже, client:message ни при чём. Разное кодирование сообщений связано с представалением всего и вся в виде строки в tcl. ИМХО, разумеется
Строки и Tcl
Просто напросто уникальная семантика Tcl, в котором (почти) всё имеет "бесплатно получаемое" строковое представление, используется для записи и чтения логов: Tcl сам "сериализует" сообщения при записи и "десериализует" при чтении. Совершенно без применения разного "левого" кода типа генерации/чтения XML или чего-то вроде перлового YAML. Дёшево и сердито.
Внешнему коду, конечно, с этим работать сложнее, т.к. нужно в теории реализовывать простейшую форму тиклевого парсера (без поддержки подстановок команд и переменных). На самом деле это не очень уж сложно.
P.S. Та же техника применяется для хранения настроек в файлеcustom.tcl : он содержит несколько строк, содержащих списки Tcl произвольной сложности — по одному на каждую переменную конфигурации.
client:message
client:message вызывается в виде колбэка из кода, который парсит входящий поток XML, как только из него будет распарсена целиком очередная станца <message>. Сие происходит в дебрях jabberlib-tclxml.