import socket
from time import strftime
time = strftime("%H:%M:%S")
irc = 'irc.tormented-box.net'
port = 6667
channel = '#test'
sck = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
sck.connect((irc, port))
print sck.recv(4096)
sck.send('NICK supaBOT\r\n')
sck.send('USER supaBOT supaBOT supaBOT :supaBOT Script\r\n')
sck.send('JOIN ' + channel + '\r\n')
while True:
data = sck.recv(4096)
if data.find('PING') != -1:
sck.send('PONG ' + data.split() [1] + '\r\n')
elif data.find ( 'PRIVMSG' ) != -1:
nick = data.split ( '!' ) [ 0 ].replace ( ':', '')
if data.find('!op') != -1:
sck.send('MODE #test +o ' + nick + '\r\n')
当我正在尝试!在IRC中操作时,我最终选择了自己而不是向其他用户提供+ o,我不确定我必须在“缺口”变量中更改...我如果有人可以帮助我,我将不胜感激。谢谢。
答案 0 :(得分:3)
你真的需要重新思考你是如何尝试解析消息的; as-is我可以说“haha!opwned PRIVMSG”来获取操作。 (对于其他人:PRIVMSG是IRC协议的一部分,用户通常不会说。)
但是,我没有看到您当前代码中的错误,但是当您发布到SO时,您已经更改了实际运行的内容(请参阅最后一行的缩进错误,这不会运行在所有)。您是否意外地改变了其他重要的东西?
使用原始IRC流量设置某种调试控制台;它将非常有价值。写入一个简单的文件是有效的(确保你刷新它然后你可以使用“tail --follow”来查看它作为你的机器人运行)。然后,您也可以注入自己的调试消息,这将帮助您调试此类问题。 (例如。你要包括repr(nick)和repr(数据)以查看发生了什么。)
答案 1 :(得分:1)
你可能会发现Supybot项目很有意思,它是一个用Python编写的IRC机器人,很容易创建你自己的插件,很多这项额外的工作已经为你完成,所以你可以担心你想要的那些功能。
G'Luck!