# -*- coding: utf-8 -*- ## ## This file is part of Gajim. ## ## Gajim is free software; you can redistribute it and/or modify ## it under the terms of the GNU General Public License as published ## by the Free Software Foundation; version 3 only. ## ## Gajim is distributed in the hope that it will be useful, ## but WITHOUT ANY WARRANTY; without even the implied warranty of ## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ## GNU General Public License for more details. ## ## You should have received a copy of the GNU General Public License ## along with Gajim. If not, see . ## ''' Events notifications using Snarl Fancy events notifications under Windows using Snarl infrastructure. :note: plugin is at proof-of-concept state. :author: Mateusz Biliński :since: 15th August 2008 :copyright: Copyright (2008) Mateusz Biliński :license: GPL ''' import new from pprint import pformat #import PySnarl from common import gajim from plugins import GajimPlugin from plugins.helpers import log_calls, log from common import ged class SnarlNotificationsPlugin(GajimPlugin): @log_calls('SnarlNotificationsPlugin') def init(self): self.config_dialog = None #self.gui_extension_points = {} #self.config_default_values = {} self.events_handlers = {'NewMessage' : (ged.POSTCORE, self.newMessage)} @log_calls('SnarlNotificationsPlugin') def activate(self): pass @log_calls('SnarlNotificationsPlugin') def deactivate(self): pass @log_calls('SnarlNotificationsPlugin') def newMessage(self, args): event_name = "NewMessage" data = args account = data[0] jid = data[1][0] jid_without_resource = gajim.get_jid_without_resource(jid) msg = data[1][1] msg_type = data[1][4] if msg_type == 'chat': nickname = gajim.get_contact_name_from_jid(account, jid_without_resource) elif msg_type in ('pm', 'groupchat'): nickname = gajim.get_resource_from_jid(jid) else: nickname = jid print "Event '%s' occured. Arguments: %s\n\n===\n"%(event_name, pformat(args)) print "Event '%s' occured. Arguments: \naccount = %s\njid = %s\nmsg = %s\nnickname = %s"%( event_name, account, jid, msg, nickname) #if PySnarl.snGetVersion() != False: #(major, minor) = PySnarl.snGetVersion() #print "Found Snarl version",str(major)+"."+str(minor),"running." #PySnarl.snShowMessage(nickname, msg[:20]+'...') #else: #print "Sorry Snarl does not appear to be running"