--- a/libpurple/purple-notifications-example Fri Nov 30 03:02:14 2018 +0000 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,91 +0,0 @@ -#!/usr/bin/env python - -# This is a simple purple 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 -# purple-specific library is needed. - -from __future__ import absolute_import, division, print_function - -import os - -import dbus -import dbus.glib -import dbus.decorators -import gobject - - -def ensureimconversation(conversation, account, name): - if conversation != 0: - return conversation - else: - # 1 = PURPLE_CONV_IM - return purple.PurpleConversationNew(1, account, name) - - -def receivedimmsg(account, name, message, conversation, flags): - buddy = purple.PurpleFindBuddy(account, name) - if buddy != 0: - alias = purple.PurpleBuddyGetAlias(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 = purple.PurpleConversationGetWindow(conversation) - purple.PurpleConvWindowRaise(window) - - if code == 103: # close - purple.PurpleConversationDestroy(conversation) - - if code == 104: # abuse - im = purple.PurpleConversationGetImData(conversation) - purple.PurpleConvImSend(im, "Go away you f...") - - -def buddysignedon(buddyid): - alias = purple.PurpleBuddyGetAlias(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: # talk - name = purple.PurpleBuddyGetName(buddyid) - account = purple.PurpleBuddyGetAccount(buddyid) - purple.PurpleConversationNew(1, account, name) - - -bus = dbus.SessionBus() -obj = bus.get_object("im.pidgin.purple.PurpleService", - "/im/pidgin/purple/PurpleObject") -purple = dbus.Interface(obj, "im.pidgin.purple.PurpleInterface") - -bus.add_signal_receiver(receivedimmsg, - dbus_interface="im.pidgin.purple.PurpleInterface", - signal_name="ReceivedImMsg") - -bus.add_signal_receiver(buddysignedon, - dbus_interface="im.pidgin.purple.PurpleInterface", - signal_name="BuddySignedOn") - -print("This is a simple purple notification server.") -print("It shows notifications when your buddy signs on or you get an " - "IM message.") - -loop = gobject.MainLoop() -loop.run()