Чтобы работало в mcabberrc включить:
Код: Выделить всё
set events_command = ~/.mcabber/имя_скрипта #Например: event.py
set events_ignore_active_window = 0
set event_log_files = 1
set event_log_dir = /tmpСкрипт писал на основе примера из исходников
Код: Выделить всё
#!/usr/bin/python
#-*- coding: UTF-8 -*-
#by evgs
#27/08/2009
import sys,os,pynotify,locale
muc_nick = 'evgs' # Свой ник
encoding = (locale.getdefaultlocale())[1]
if len(sys.argv) == 5:
event,arg1,arg2,filename = sys.argv[1:5]
else:
event,arg1,arg2 = sys.argv[1:4]
filename = None
if filename is not None:
f = file(filename)
message = f.read()
else:
message = 'Empty file'
def showNotify(arg, arg2):
pynotify.init('mcnotify')
msgbox = pynotify.Notification(unicode(arg, encoding), unicode(arg2, encoding))
msgbox.set_timeout(3000)
msgbox.set_urgency(pynotify.URGENCY_LOW)
msgbox.show()
pynotify.uninit()
if event == 'MSG':
if arg1 == 'IN':
arg2 = arg2[:arg2.index('@')]
arg2 = 'Новое сообщение от '+ arg2
showNotify(arg2, message)
elif arg1 == 'MUC':
From = message[message.index('<')+1:message.index('>')]
msg = message[message.index('>')+2:-1]
arg2 = arg2 + ' от ' + From
if muc_nick in msg:
showNotify(arg2, msg)
elif event == 'STATUS':
st = { 'O':'Доступен', \
'F':'Готов поболтать', \
'A':'Ушел', \
'N':'Недоступен', \
'D':'Занят', \
'I':'Невидим', \
'_':'Отключен', \
'?':'error', \
'X':'requested'}
showNotify(arg2, st[arg1])
if filename is not None and os.path.exists(filename):
os.remove(filename)Файл сделать исполняемым и положить по адресу, указанному в mcabberrc
Выглядит примерно так