如何制作Python IRC机器人?

时间:2014-11-23 07:14:36

标签: python bots irc

我正在尝试为freenode中的一个频道创建一个可用的Python IRC bot。 现在我想要它做的就是避免ping超时并用'你好'来回复'!hi'消息! 我没有将机器人放在服务器中,我只是想让它从我的电脑上运行10-15分钟。

代码如下所示:(我已经替换了原始频道名称和机器人名称)

import socket
import sys

server="irc.freenode.net"
channel="##mychannel"
botnick="testbot"
irc = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
irc.connect((server,6667))
irc.send("USER "+botnick+" "+botnick+" "+botnick+" :TestBot\n")
irc.send("NICK "+botnick+"\n")
irc.send("PRIVMSG nickserv :iNOOPE\r\n") #I don't know what this line does....
irc.send("JOIN "+channel+"\n")

while 1:
    text=irc.recv(2040)
    print (text)
    if text.find("PING")!=-1:
        irc.send("PONG "+text.split("PING ")[1]+"\r\n")
    if text.find(":!hi")!=-1:
        irc.send("PRIVMSG "+channel+" :Hello!\r\n")

现在,当我运行该程序时,它说“无法查找您的用户名”。几秒钟后,它显示一些文字太快,我无法抓住并关闭控制台。它没有连接到频道。当我在IDLE中运行时,它说“'str'不支持缓冲区接口”。

我想学会这样做,这就是为什么我避免所有现有的机器人。 而且我不是Python的专家。 Javascript-HTML-CSS是我最好的编程组合。

有人可以帮忙吗?

1 个答案:

答案 0 :(得分:0)

我自己解决了这个问题.... " text.split(" PING")"有些不对劲。我将其更改为" text.split()"所以它在第一个空格处分裂,并且没有问题。