View Single Post
b666m's Avatar
Posts: 1,090 | Thanked: 476 times | Joined on Jan 2010 @ Ingolstadt, Germany
#76
Originally Posted by Bizzey View Post
hmm the vribration notification sounds nice, could u post it?
here you go:

Code:
#!/usr/bin/env python

def showconv_cb (n, action):
	# assert action == "showconv"
	print "Click :D"
	n.close()

def my_func(account, sender, message, conversation, flags):

	if bus.pidginbus.PurpleConversationHasFocus(conversation) == 0:

		name = str(sender.split("@")[0])
		buddy = bus.pidginbus.PurpleFindBuddy(account,name)
		alias = bus.pidginbus.PurpleBuddyGetAlias(buddy)
		#icon = bus.pidginbus.PurpleBuddyGetIcon(buddy)
		#icon_path = bus.pidginbus.PurpleBuddyIconGetFullPath(icon)
		proto = bus.pidginbus.PurpleAccountGetProtocolName(account)
		#proid = bus.pidginbus.PurpleAccountGetProtocolId(account)
		conv = str(conversation)

		if alias == "":
			alias = name

		msg = message

		if proto == "XMPP":
			msg = msg[6:-7]
		
		elif proto == "MSN":
			col = msg.find("COLOR")
			if col > -1:
				msg = msg[col+16:-14]

		msg = msg.replace("\n"," ")
		msg = "\""+msg
		if len(msg) > 32:
			msg = msg[:33]+"...\""
		else:
			msg = msg+"\""			

		print conv+":", alias, "("+sender+") said \""+message+"\" in proto", proto
		#with icon at", icon_path, "in conv", conv

        pynotify.init(os.path.splitext(os.path.basename(sys.argv[0]))[0])
	n = pynotify.Notification(alias+" ("+proto+")",msg,"pidgin")
        n.set_hint_string("default","im.pidgin.purple.PurpleService /im/pidgin/purple/PurpleObject im.pidgin.purple.PurpleInterface.PurpleConversationPresent int32:"+conv)
        # n.set_hint_string("dbus-callback-default","com.nokia.osso_browser /com/nokia/osso_browser com.nokia.osso_browser      open_new_window string:\"callto://666\"")
	n.add_action("showconv", "ShowConv Action", showconv_cb)
        n.set_timeout(3000)
        n.show()

        sbus.mcebus.req_vibrator_pattern_activate("PatternChatAndEmail")

import os
import sys
import gobject, dbus
import pynotify

from dbus.mainloop.glib import DBusGMainLoop

dbus.mainloop.glib.DBusGMainLoop(set_as_default=True)
bus = dbus.SessionBus()
sbus = dbus.SystemBus()

obj = bus.get_object("im.pidgin.purple.PurpleService", "/im/pidgin/purple/PurpleObject")
bus.pidginbus = dbus.Interface(obj, "im.pidgin.purple.PurpleInterface")

objv = sbus.get_object("com.nokia.mce", "/com/nokia/mce/request")
sbus.mcebus = dbus.Interface(objv, "com.nokia.mce.request" )

bus.add_signal_receiver(my_func,
                        dbus_interface="im.pidgin.purple.PurpleInterface",
                        signal_name="ReceivedImMsg")

loop = gobject.MainLoop()
loop.run()
EDIT1: Code updated because of false indents

Last edited by b666m; 2010-07-07 at 18:14.
 

The Following User Says Thank You to b666m For This Useful Post: