Mercurial > pidgin
view src/gaim-notifications-example.py @ 12174:c7652a910308
[gaim-migrate @ 14476]
KingAnt said:
"And if double-clicking loads a plugin, then double-clicking
again must unload the plugin. However, I think it's better
if double-clicking either opens the preferences or does nothing."
I disagree that double-clicking again must undo what happened from the first time, and in this case, that would totally defeat the goal. Given that this is possibly confusing no matter how we do it, let's take the safest route and not enable the plugin if it's not already. This still accomplishes my main goal of being able to double-click on a plugin I'm using to see its prefs.
committer: Tailor Script <tailor@pidgin.im>
| author | Richard Laager <rlaager@wiktel.com> |
|---|---|
| date | Sun, 20 Nov 2005 22:09:24 +0000 |
| parents | 64fadbf3810f |
| children | ac5bc9a7b603 |
line wrap: on
line source
#!/usr/bin/env python # This is a simple gaim notification server. # It shows notifications when your buddy signs on or you get an IM message. # # This script requires Python 2.4 and PyGTK bindings # # Note that all function names are resolved dynamically, no # gaim-specific library is needed. import dbus import dbus.glib import dbus.decorators import gobject import os def ensureimconversation(conversation, account, name): if conversation != 0: return conversation else: # 1 = GAIM_CONV_IM return gaim.GaimConversationNew(1, account, name) def receivedimmsg(account, name, message, conversation, flags): buddy = gaim.GaimFindBuddy(account, name) if buddy != 0: alias = gaim.GaimBuddyGetAlias(buddy) else: alias = name text = "%s says %s" % (alias, message) code = os.spawnlp(os.P_WAIT, "xmessage", "xmessage", "-buttons", "'So what?','Show me',Close,Abuse", text) if code == 101: # so what? pass else: conversation = ensureimconversation(conversation, account, name) if code == 102: # show me window = gaim.GaimConversationGetWindow(conversation) gaim.GaimConvWindowRaise(window) if code == 103: # close gaim.GaimConversationDestroy(conversation) if code == 104: # abuse im = gaim.GaimConversationGetImData(conversation) gaim.GaimConvImSend(im, "Go away you f...") def buddysignedon(buddyid): alias = gaim.GaimBuddyGetAlias(buddyid) text = "%s is online" % alias code = os.spawnlp(os.P_WAIT, "xmessage", "xmessage", "-buttons", "'So what?','Let's talk'", text) if code == 101: # so what? pass if code == 102: # let's talk name = gaim.GaimBuddyGetName(buddyid) account = gaim.GaimBuddyGetAccount(buddyid) gaim.GaimConversationNew(1, account, name) bus = dbus.SessionBus() obj = bus.get_object("org.gaim.GaimService", "/org/gaim/GaimObject") gaim = dbus.Interface(obj, "org.gaim.GaimInterface") bus.add_signal_receiver(receivedimmsg, dbus_interface = "org.gaim.GaimInterface", signal_name = "ReceivedImMsg") bus.add_signal_receiver(buddysignedon, dbus_interface = "org.gaim.GaimInterface", signal_name = "BuddySignedOn") print """This is a simple gaim notification server. It shows notifications when your buddy signs on or you get an IM message.""" loop = gobject.MainLoop() loop.run()
