Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #!/usr/bin/env python
- import aiml
- import os
- import htmllib, formatter
- import StringIO
- import time
- botname = ['imaccountname']
- wpm = 1000.0
- charsperword = 6.0
- secondsperchar = 60.0 / (wpm * charsperword)
- print secondsperchar
- k = aiml.Kernel()
- for filename in os.listdir("./"):
- if filename.endswith(".aiml"):
- k.learn(filename)
- def my_func(account, sender, message, conversation, flags):
- accountname = purple.PurpleAccountGetUsername(account)
- if accountname in botname and sender not in botname:
- file = StringIO.StringIO()
- p = htmllib.HTMLParser(formatter.AbstractFormatter(formatter.DumbWriter(file)))
- p.feed(message)
- p.close()
- text = file.getvalue()
- print sender + " said, \"" + text + "\""
- reply = k.respond(text)
- waittime = secondsperchar*len(reply)
- print "I replied after " + str(waittime) + " seconds, \"" + reply + "\""
- time.sleep(waittime)
- if purple.PurpleConversationGetType(conversation)==2:
- purple.PurpleConvChatSend(purple.PurpleConvChat(conversation), reply)
- else:
- purple.PurpleConvImSend(purple.PurpleConvIm(conversation), reply)
- import dbus, gobject
- 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")
- purple = dbus.Interface(obj, "im.pidgin.purple.PurpleInterface")
- bus.add_signal_receiver(my_func,
- dbus_interface="im.pidgin.purple.PurpleInterface",
- signal_name="ReceivedChatMsg")
- bus.add_signal_receiver(my_func,
- dbus_interface="im.pidgin.purple.PurpleInterface",
- signal_name="ReceivedImMsg")
- print "Available Accounts: ",
- for i in purple.PurpleAccountsGetAll():
- print purple.PurpleAccountGetUsername(i)," ",
- print ""
- loop = gobject.MainLoop()
- loop.run()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement