0
我正在尝试为freenode中的一个频道制作一个可用的Python IRC bot。 现在我想要做的就是避免ping超时,并用'hello!'回复'!hi'消息。 我不把bot放在服务器上,我只是希望它能从我的电脑运行10-15分钟。如何制作Python IRC机器人?
的代码如下所示:(我已经取代了原来的频道名称和BOT名)
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是我最好的编程组合。
任何人都可以帮忙吗?
这是一个真正的,非常糟糕的,低级别的编写机器人的方法。我确切地认识到这个代码,来自十几个其他人在网上找到它:)如果你想了解如何做到这一点,挑选其中一个预先存在的机器人。 IRC不是一个令人愉快的协议(我说这是从头开始编写[一个基本的机器人](https://github.com/eevee/dywypi/blob/master/dywypi/dialect/irc/client.py) )。 – Eevee 2014-11-23 07:20:47
(但是你的实际问题是你正在使用python 3运行它,而它是为2.2的一些古代Python版本编写的,它可能仍然对2.7,但相信我这不是一个好的起点。 ) – Eevee 2014-11-23 07:21:47
@Eevee我知道。但我刚刚开始学习,而且我不打算做任何复杂的事情。 – aswathy 2014-11-23 07:46:18