Выполение определенного действия при смене статуса собеседника

Прошу прощения что задаю такие вопросы, просто совершенно не знаю tcl.

Хочу добиться следующего результата. Когда мой собеседник например появляется в сети - необходимо чтобы выполнялась та, или иная _внешняя_ команда UNIX. Как реализовать?

БлагоДарю.

Comment viewing options

Select your preferred way to display the comments and click "Save settings" to activate your changes.

Re: Выполение определенного действия...

Добавить в config.tcl:

proc superspy {connid from type x args} {
  eval [concat [list exec my_cool_program -from $from -type $type] $args]
}
hook::add client_presence_hook superspy

В итоге на каждый пришедший презенс будет запускаться программа my_cool_program с именованными параметрами:

-from
Полный JID, приславший присутствие
-type
Тип присутствия: available или unavailable
-show
Разновидность присутствия available: chat, away, xa, dnd. Если установлена.
-status
Сообщение присутствия (типа "Я здеся!"), если установлено.
-priority
Приоритет, если установлен.

Пример:
my_cool_program -from govnochat@conference.jabber.ru/Vasya -type available -status "Автоматически в состоянии \"отошёл\" по бездействию" -priority 8 -show away

Если нужно ловить присутствие только людей из ростера, следует добавить в процедуру соответствующую проверку, например, так:

proc superspy {connid from type x args} {
  if {[roster::find_jid $connid $from] == ""} return
  eval ...
}

P.S. Лучше всё-таки прочитать туториал, осилить примеры в статье "Нетривиальные настройки" на wiki и заняться самостоятельным творчеством, не забывая его публиковать в той же вики.

Благодарю Вас! Обещаю изучить

Благодарю Вас!
Обещаю изучить англоязычный туториал и что нибудь добавлять в wiki сайта.

По поводу изучения Tcl...

На самом деле я вполне серьёзно: два популярных плагина (официальный "floatinglog" и неофициальный "autoanswer") написаны людьми, не знавшими Tcl в тот момент, когда у них появилось желание получить требуемую функциональность.

Так что "дорогу осилит идущий" © :-)

Не работает!

Я на Wiki скачал инстркмент "Сделай-Tkabber-Starpack_сам", сделал всё по инстукции, но полученный файл не запускается, выдаёт какую-то ошибку. Никак не пойме в чём дело. Пожалуйста подскажите!

Re: Не работает!

По описанию "выдаёт какую-то ошибку" всё, что можно сказать, это то, что "существует какая-то проблема".

В любом случае, инструмент сделал Руслан Рахманин, известный в комнате tkabber@conference.jabber.ru под ником Archimed; задавать этот вопрос следует там и ему.

Также не вполне понятно зачем понадобилось собирать свой старпак если доступна его официальная, протестированная версия.

Syndicate content