打造自己的gtalk机器人
http://www.venkysblog.com/tutorial-write-your-own-gtalk-custom-bot-in-1
上边的链接中一篇很好快速入门的文章
1. 依赖包:xmpppy和pydns
http://xmpppy.sourceforge.net/
http://pydns.sourceforge.net/
下载完以后。安装
python setup.py install
2. 下载安装gtalkrobot
svn checkout http://pygtalkrobot.googlecode.com/svn/trunk/pygtalkrobot/src pygtalkrobot-read-only
cd pygtalkrobot-read-only
修改sampleRobot.py
最后两行:修改用户名/密码
python sampleRobot.py运行
我加了一段daemon的代码。防止程序死掉
if __name__ == “__main__”:
try:
pid = os.fork()
if pid > 0:
sys.exit(0)
except Exception, ex:
print(“fork1 failn”)
sys.exit(1)
os.chdir(‘/’)
os.setsid()
os.umask(0)
while True:
try:
pid = os.fork()
if pid > 0:
os.wait()
else:
break
except Exception, ex:
print(“fork2 failn”)
sys.exit(1)
bot = SampleBot()
bot.setState(‘available’, “lava weibo robot (/help查看帮助)”)
bot.start(“abc@gmail.com”, “abc”)
再有该程序默认的方式为使用message回复。而不是chat的方式。。需要修改PygtalkRobot.py文件中replyMessage函数为
def replyMessage(self, user, message, typ=’chat’):
3. 打造自己的机器人.
该项目使用特定函数名称和__doc__保存正则的方式来运行
control代码:
def initCommands(self):
if self.commands:
self.commands.clear()
else:
self.commands = list()
for (name, value) in inspect.getmembers(self):
if inspect.ismethod(value) and name.startswith(self.command_prefix):
self.commands.append((value.__doc__, value))
#print self.commands
def controller(self, conn, message):
text = message.getBody()
user = message.getFrom()
if text:
text = text.encode(‘utf-8′, ‘ignore’)
if not self.commands:
self.initCommands()
for (pattern, bounded_method) in self.commands:
match_obj = re.match(pattern, text)
if(match_obj):
try:
return_value = bounded_method(user, text, match_obj.groups())
if return_value == self.GO_TO_NEXT_COMMAND:
pass
else:
break
except:
print_info(sys.exc_info())
self.replyMessage(user, traceback.format_exc())
在sampleRobot.py中定义自己要匹配的内容处理函数:
def command_005_addWeibo(self, user, message, args):
”’/a weibo (.*)”’
some code
好了。。到此结束。
msn机器人:
http://code.google.com/p/ichatbot/
安装步骤:
- Check out latest repository
svn checkout http://ichatbot.googlecode.com/svn/trunk/ ichatbot-read-only
- Open chatbot.py, change chatbot MSN email, password, botname and admin_email
- Change your bot profile in chatbot.ini such as chatbot’s name, master, birthplace etc
- run ./chatbot.py and your robot is ready for chat on MSN
- say ‘help’ to your bot on MSN to list available commands
我直接没有使用作者写的程序,自己动手写了一个跟gtalk机器人控制方式一样的程序,这里下载
http://t.lava.cn/blog/26496