![]() |
2010-08-10
, 10:29
|
Posts: 7 |
Thanked: 3 times |
Joined on Sep 2009
|
#82
|
![]() |
2010-08-14
, 18:19
|
Posts: 103 |
Thanked: 8 times |
Joined on Jun 2009
|
#83
|
i think the script is pretty done now.
last changes:
- notification uses the alias of the contact
-> if no alias is defined/available (when the contact isn't in your list for example) the account/id will be used - in icq: the number; in msn and xmpp: the first part of the email (@... is cut off)
- the protocol now is set into brackets behind the alias/account/id
- the messages are now clear of formatting. xmpp: <body> tag is removed; msn: <FONT> tag is removed
(the rest is the same as mentioned above in the new stuff area)
SCREENSHOT:
and here's the code:
i think i will take a look into how to autostart/end the script on pidgin start/end.Code:#!/usr/bin/env python def cb (Notification=None, action=None, Data=None): pass 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 alias, "("+sender+") said \""+message+"\" in proto", proto, proid #with icon at", icon_path, "in conv", conv # it's only commented out for test-reasons because i only try it on ubuntu and console with print pynotify.init(os.path.splitext(os.path.basename(sys.argv[0]))[0]) n = pynotify.Notification(alias+" ("+proto+")",msg,"pidgin") # ------------------------- # maybe the next two lines can be used for bringing the conversation window to the foreground # when the notification is being clicked by the user # if that is not possible: comment them out or delete them (no use for them) n.set_hint_string("dbus-callback-default","im.pidgin.purple.PurpleService /im/pidgin/purple/PurpleObject im.pidgin.purple.PurpleInterface purple_conversation_present 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("default", "im", cb) n.set_timeout(3000) # or do i have to make an "add_action" for the notification? # maybe i can just put three NULL arguments there ^^ # ------------------------ n.show() 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() obj = bus.get_object("im.pidgin.purple.PurpleService", "/im/pidgin/purple/PurpleObject") bus.pidginbus = dbus.Interface(obj, "im.pidgin.purple.PurpleInterface") bus.add_signal_receiver(my_func, dbus_interface="im.pidgin.purple.PurpleInterface", signal_name="ReceivedImMsg") loop = gobject.MainLoop() loop.run()
BTW: it also works on my ubuntu-laptop
![]() |
2010-08-18
, 15:09
|
Posts: 5 |
Thanked: 0 times |
Joined on Jul 2010
|
#84
|
![]() |
2010-08-23
, 12:53
|
|
Posts: 664 |
Thanked: 160 times |
Joined on Jul 2008
@ Australia
|
#85
|
![]() |
2010-08-30
, 21:45
|
|
Posts: 238 |
Thanked: 291 times |
Joined on Mar 2010
@ London, UK
|
#86
|
![]() |
2010-09-11
, 00:45
|
|
Posts: 1,396 |
Thanked: 2,796 times |
Joined on Sep 2010
@ Caracas, Venezuela
|
#87
|
![]() |
2010-09-13
, 16:23
|
Posts: 147 |
Thanked: 7 times |
Joined on Aug 2010
|
#88
|
![]() |
2010-09-13
, 22:34
|
|
Posts: 1,396 |
Thanked: 2,796 times |
Joined on Sep 2010
@ Caracas, Venezuela
|
#89
|
hi
what is the final code and if there is way to make the pidgin to vibrate ?
thank you
![]() |
2010-12-09
, 06:35
|
Posts: 9 |
Thanked: 1 time |
Joined on Dec 2009
|
#90
|
Last edited by droll; 2010-07-13 at 05:54.