import weechat, pynotify, string
WEECHAT_ICON = "/usr/share/pixmaps/gnome-irc.png"
weechat.register("wee-notifier", "0.1.0", "", "A notification system for weechat using pynotify")
weechat.add_message_handler("privmsg", "handle_message")
class WeeNotification:
def show_notification(self,chan,message):
pynotify.init("wee-notifier")
wn = pynotify.Notification(chan, message, WEECHAT_ICON)
wn.set_urgency(pynotify.URGENCY_NORMAL)
wn.set_timeout(pynotify.EXPIRES_NEVER)
wn.show()
def message_irc(self,message):
string = ''
msg = message.split(":")
for i in range(len(msg)):
if i > 0:
string += msg[i]+' '
return string
def handle_message(server, args):
window = WeeNotification()
string = args.split('!')
nick = string[0].replace(':','')
nick_say = string[1].split("PRIVMSG")
current_server = weechat.get_info("server")
current_chan = weechat.get_info("channel")
chan = nick_say[1].split(":")[0].strip()
message = window.message_irc(nick_say[1])
#nicknames - defined in ~/.weechat/weechat.rc
NICKNAME1 = weechat.get_server_info()[server]['nick1']
NICKNAME2 = weechat.get_server_info()[server]['nick2']
NICKNAME3 = weechat.get_server_info()[server]['nick3']
if (current_server != server) and (current_chan != chan):
if (NICKNAME1 == chan) or (NICKNAME2 == chan) or (NICKNAME3 == chan):
window.show_notification("Messaggio privato da "+ nick, message)
elif (NICKNAME1 or NICKNAME2 or NICKNAME3) in message:
if "ACTION" in message:
window.show_notification(""+message.replace('ACTION','')+"" ,""+ nick +" ("+chan+")")
weechat.prnt(message)
else:
window.show_notification(chan, ""+nick+": "+message)
return weechat.PLUGIN_RC_OK