#!/usr/bin/env python import dbus, gobject, time, threading, dbus.glib from dbus.mainloop.glib import DBusGMainLoop def sendmessage(text, acct, conversation): # conv2 = purple.PurpleGetConversations() # if conv2.count(conversation) != 1: # acct, conversation = createconv(acct, ) ims = purple.PurpleConversationGetImData(conversation) purple.PurpleConvImSend(ims, text) return def createconv(acct, name): conv = purple.PurpleConversationNew(1,acct,name) trans = purple.PurpleConvIm(conv) return trans, conv def stripper(message): mode = 0 out = '' for letter in message: if mode == 0: if letter == '<': mode = 1 else: out+=letter else: if letter == '>': mode = 0 return out def catcher(account, sender, message, conversation, flags): thread1 = threading.Thread(target=immsg, args=(account, sender, message, conversation, flags)) thread1.start() return def immsg(account, sender, message, conversation, flags): status = purple.PurpleSavedstatusGetCurrent() bud = purple.PurpleFindBuddy(account, sender) name2 = purple.PurpleBuddyGetAlias(bud) name = purple.PurpleBuddyGetName(bud) if conversation == 0: yout = purple.PurpleGetConversations() for pigs in yout: if name == purple.PurpleConversationGetName(pigs): conversation = pigs message = stripper(message) message = message.lower() if message=='scissors': sendmessage('rock', account, conversation) if message=='rock': sendmessage('paper', account, conversation) if message=='paper': sendmessage('scissors', account, conversation) return DBusGMainLoop(set_as_default=True) bus = dbus.SessionBus() obj = bus.get_object("im.pidgin.purple.PurpleService", "/im/pidgin/purple/PurpleObject") purple = dbus.Interface(obj, "im.pidgin.purple.PurpleInterface") # pig = purple.PurpleGetConversations() # ims = purple.PurpleConvIm(pig[0]) # acct = purple.PurpleConversationGetAccount(pig[0]) # while True: # r = raw_input('> ') # sendmessage(r, ims, acct) bus.add_signal_receiver(catcher, dbus_interface="im.pidgin.purple.PurpleInterface", signal_name="ReceivedImMsg") gobject.threads_init() dbus.glib.init_threads() loop = gobject.MainLoop() loop.run()