使用Python连接到IRC

时间:2015-11-18 10:02:37

标签: python irc twitch

我是编程新手,正在尝试使用Python为Twitch创建一个简单的Send Only IRC客户端。

但是我的代码开头出现问题:(显然在使用命令连接并发送我的密码和用户名后,我似乎没有收到服务器的响应。

不知道我做错了什么,我们将非常感谢任何帮助或指导。

守则:

username = '~omitted~'
password = 'oauth:~omitted~'
channel = '#channelname'

irc = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
irc.connect(('irc.twitch.tv', 6667))
irc.recv(4096)
irc.send('PASS ' + password + '\r\n')
irc.send('NICK ' + username + '\r\n')
irc.send('USER ' + username + '\r\n')
irc.send('JOIN ' + channel + '\r\n')


while True:
    data = irc.recv(4096)
    print(data)
    if data.find('PONG') != -1:
        irc.send('PONG ' + data.split()[1] + '\r\n')

1 个答案:

答案 0 :(得分:0)

这是我用于irc日志记录的一小段代码:

readbuffer = ''
s=socket.socket()
s.connect((HOST, PORT))
s.send('NICK %s\r\n' % NICK)
s.send('USER %s %s bla :%s\r\n' % (IDENT, HOST, REALNAME))

log = False
while 1:
  readbuffer = readbuffer + s.recv(1024)
  temp       = string.split(readbuffer, '\n')
  readbuffer = temp.pop()
  for line in temp:
    line = string.split(string.rstrip(line))
    if(line[0] == 'PING'):
      s.send('PONG %s\r\n' % line[1])
    else:
      if(line[-1]=='+x'):
        print ' '.join(line)
        s.send('JOIN #twitlive\r\n')
        log = True
      else:
        if not log:
          print ' '.join(line[3:])
        else:
          if len(line) > 3:
            fullname = ''
            name = ''
            if line[0].split('!')[0][0] == ':':
              fullname = line[0][1:]
              name = line[0].split('!')[0][1:]
            if line[3:][0][0] == ':':
              ...
              ...

也许你发现了一些有用的东西