Прошу прощения что задаю такие вопросы, просто совершенно не знаю tcl.
Хочу добиться следующего результата. Когда мой собеседник например появляется в сети - необходимо чтобы выполнялась та, или иная _внешняя_ команда UNIX. Как реализовать?
БлагоДарю.
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 с именованными параметрами:
Пример:
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; задавать этот вопрос следует там и ему.
Также не вполне понятно зачем понадобилось собирать свой старпак если доступна его официальная, протестированная версия.