示例#1
0
文件: doood.py 项目: drfloob/doood
def respond(who, conversation, saying):
    logger.debug("in serial respond")

    delayed_reply.do_delayed_reply ( who
                                     , conversation
                                     , saying
                                     , 5
                                     , 10
                                     , purp.get_purple(purp.get_bus())
                                     , logger )
示例#2
0
文件: doood.py 项目: drfloob/doood
def doood(account, sender, message, conversation, flags):
    logger.debug("entering 'doood' signal-handler")
    logger.debug("\taccount = %s", str(account))
    logger.debug("\tsender = %s", str(sender))
    logger.debug("\tmessage = %s", str(message))
    logger.debug("\tconversation = %s", str(conversation))
    logger.debug("\tflags = %s", str(flags))

    purple = purp.get_purple(purp.get_bus())
    cd = purple.PurpleConversationGetChatData( conversation )
    the_im = purple.PurpleConvIm( conversation )
    logger.debug("\tdata = %s", str(the_im))

    # intentionally disabled test code
    if 1 == 0:
        for i in range(0,65500):
            msgtxt = ''
            try:
                msgtxt = purple.PurpleConversationMessageGetMessage(i)
            except:
                pass
            else:
                if len(msgtxt) != 0:
                    logger.debug("i = %d; msg = %s", i, msgtxt)

    if sender in ConfigData[u"users"]:
        logger.debug("\t%s said: '%s'", sender, message)
        for key in ConfigData[u"replies"].iterkeys():
            if string.find(string.lower(message), string.lower(key)) != -1:
                #debug info
                logger.debug("responding to: '%s'", key)

                try:
                    if ParallelRespond:
                        #print "not running in parallel yet"
                        #respond(sender, conversation, ConfigData[u"replies"][key])
                        logger.debug("Spawning new process to handle '%s' message from %s" % (key, sender))
                        subp.Popen( [ os.path.join(os.path.dirname(__file__), "other_guy.py")
                                      , str(sender)
                                      , str(conversation)
                                      , ConfigData[u"replies"][key]  
                                      , str(3) # sleep while 'thinking'
                                      , str(5) # sleep while 'typing'
                                      ] )
                        logger.debug("hmmmm")
#                        return 0
                    else:
                        respond(sender, conversation, ConfigData[u"replies"][key])
                except dbus.exceptions.DBusException:
                    import traceback

                    (type, value, tb) = sys.exc_info()
                    logger.error("DBus Error. Run in debug mode for more information.")
                    logger.debug(string.join(traceback.format_exception(type, value, tb)))
                break
示例#3
0
#!/usr/bin/env python
import the_purple as purp
import sys, gobject, logging, time, random

import delayed_reply
logger = logging.getLogger("other_guy")

if __name__ == "__main__":

    who = sys.argv[1]
    conversation = int( sys.argv[2] )
    saying = sys.argv[3]
    sleep_time_for_fake_thought = int( sys.argv[4] )
    sleep_time_for_fake_typing = int( sys.argv[5] )

    bus = purp.get_bus()

    purple = purp.get_purple(purp.get_bus())

    delayed_reply.do_delayed_reply( who
                                    , conversation
                                    , saying
                                    , sleep_time_for_fake_thought
                                    , sleep_time_for_fake_typing
                                    , purple
                                    , logger )