обработчик событий в micq
читаем мануал :)
делаем его исполняемым (надо же такое!)
я стырил из sim :)
p.s.: конечно, можно повесить любые действия на определенные события :)
p.p.s: кстати, скрипт можно редактировать и с запущенной миской, играться %)
p.p.p.s: идея сперта отсюда http://climm.ukeer.de/pipermail/climm-list/2003-March/000958.html
модифицировал play $1 1>/dev/null, чтоб не загрязняло ) даже до такого додумался )
единственное что - немного тормозит, но может это мой компьютер староват %) думаю это зависит от внешней программы, а не от миски
~$ man climmrc
event <script>
Set the script to execute for events to script. It is called
with the following arguments:
1. The IM type, currently only icq.
2. The UIN of the contact this event relates to, or 0.
3. The nick of the contact this events to relates to, or the
empty string.
4. The string global.
5. The type of this event, which can be msg, on, off, beep or
status, where on and off are for oncoming and offgoing contacts.
This list may not be exhaustive.
6. For messages, the message type, for offgoing contacts, the
previous status, and for oncoming contacts or status changes,
the new status, otherwise 0.
7. The text of the message.
8. The contact's user agent.
Note that for security reasons, single quotes may be replaced by
double quotes, and the message text may be truncated.
редактируем файл настроек climm (ну конечно же vim)
~$ vim ~/.climm/climmrc
sound off
event off
============ (идея разделения было/стало сперта у ramok :)
sound event
event ~/.climm/eventscript
создаем скрипт для обработки событий
~$ vim ~/.climm/eventscript
1 #!/bin/sh
2
3 ifplay() {
4 if fuser /dev/dsp >/dev/null ; then echo -ne "\a"
5 else play $1 1>/dev/null & ; fi
6 }
7
8 if [ "$5" = "msg" ] ; then ifplay ~/.climm/sounds/message.wav ; fi
+ любые другие события ) какие параметры как передаются - читать выше %) делаем его исполняемым (надо же такое!)
~$ chmod a+x ~/.climm/eventscriptкопируем звуки куда в скрипте указали %)
я стырил из sim :)
p.s.: конечно, можно повесить любые действия на определенные события :)
p.p.s: кстати, скрипт можно редактировать и с запущенной миской, играться %)
p.p.p.s: идея сперта отсюда http://climm.ukeer.de/pipermail/climm-list/2003-March/000958.html
модифицировал play $1 1>/dev/null, чтоб не загрязняло ) даже до такого додумался )
единственное что - немного тормозит, но может это мой компьютер староват %) думаю это зависит от внешней программы, а не от миски
- Добавить комментарий
- 1855 просмотров
Страница для печати

впримание вопрос: надите тут уязвимость Ж:-)
#!/usr/local/bin/bash . ~/.micq/awayrc if [ $AWAY = "1" ]; then FROM=$3 MSG=$7 TO=номер@2sms.kyivstar.net if [[ -z $MSG ]];then echo FAILED >> ~/awaylog; else echo $MSG |iconv -c -f utf-8 -t koi8-u | mail -s $FROM $TO; fi; fi-- Signature invent in progress 22% #.........полезный типс
только вот у меня маська на сервере висит.. надо будет подумать и аудио сервер на локальной машине повесить на внешний интерфейс и звук слать с сервера
--
Signature invent in progress 22% #.........
5 else play $1 1>/dev/null; fi
==================================
5 else play $1 1>/dev/null &; fi
шправлено ;)
прилагается новый скрипт! во как)
это сыроватая версия, и многое еще будет доделываться на досуге, но все-таки выкладываю, потому что она намного круче предыдущей...
здесь используется osd_cat, т.е. пишет в иксах поверх всех окон уведомление ) подробности - man osd_cat
perlish style ;) автор - уже ваш слуга
#!/usr/bin/perl -w
; use strict
; no warnings 'uninitialized'
; my ( $IM
, $UIN
, $NICK
, $GLOBAL
, $EVENT
, $TYPE
, $MSG
, $CLIENT
) = @ARGV
; my %config =
( position => 'bottom'
, delay => 2
, font => '-*-helvetica-bold-r-*-*-32-*-*-*-*-*-koi8-u'
)
; my( $message, $color, $sound )
; if ( $EVENT eq 'msg' )
{ $message = "Message from $NICK:\n" . substr $MSG, 0, 255
; $sound = 'message.wav'
; $color = 'blue'
}
elsif ( $EVENT eq 'on' )
{ $message = "$NICK is online"
; $color = 'green'
}
elsif ( $EVENT eq 'off' )
{ $message = "$NICK is offline"
; $color = 'red'
}
; system( "echo '$message' | osd_cat -p $config{position} -c $color -d $config{delay} -f $config{font} 2>/dev/null &" )
; system( "play $ENV{HOME}/.micq/sounds/$sound 2>/dev/null &" ) if $sound
на приход сообщения - звук, надеюсь все понятно и поменять очень просто
p.s.: есть баги, я о некоторых знаю и мечтаю исправить
p.p.s.: ждите обновлений ;)
в таком виде у меня, сообщения идут крякозяблами.
сделал так:
system( "echo '$message' | iconv -f UTF8 -t KOI8-U | osd_cat -p $config{position} -c $color -d $config{delay} -f $config{font} 2>/dev/null &" )т.е. добавил конвертацию из утф, в котором приходят мессаги, в системную кои8-у.