TypeError: does not support the buffer interface Twitch IRC Chat Bot
TypeError: does not support the buffer interface Twitch IRC Chat Bot
首先,我无法在任何地方找到答案。我不确定它是否需要导入,或者它是否只是做得不好的代码。简而言之 shell,通过这个项目,我将使用 SMS 消息和许多其他东西制作一个更好的 twitch 关注者通知程序。
编辑:整个崩溃日志如下:
line 16 in <module>
irc.send('PASS ' + password + '\r\n')
TypeError: Does not support the buffer interface
另外,我不得不反复双击文件才能得到这个,所以如果它有点不对,我很抱歉。我无法使编码的崩溃日志正常工作。
import socket #imports module allowing connection to IRC
import threading #imports module allowing timing functions
bot_owner = 'BetterFollowerBot'
nick = 'BetterFollowerBot'
channel = '#BetterFollowerBot'
server = 'irc.twitch.tv'
password = '~Took This Out~'
queue = 0 #sets variable for anti-spam queue functionality
irc = socket.socket()
irc.connect((server, 6667)) #connects to the server
#sends variables for connection to twitch chat
irc.send('PASS ' + password + '\r\n')
irc.send('USER ' + nick + ' 0 * :' + bot_owner + '\r\n')
irc.send('NICK ' + nick + '\r\n')
irc.send('JOIN ' + channel + '\r\n')
def message(msg): #function for sending messages to the IRC chat
global queue
queue = queue + 1
print (queue)
if queue < 20: #ensures does not send >20 msgs per 30 seconds.
irc.send('PRIVMSG ' + channel + ' :' + msg + '\r\n')
else:
print ('Message deleted')
def queuetimer(): #function for resetting the queue every 30 seconds
global queue
print ('queue reset')
queue = 0
threading.Timer(30,queuetimer).start()
queuetimer()
while True:
data = irc.recv(1204) #gets output from IRC server
user = data.split(':')[1]
user = user.split('!')[0] #determines the sender of the messages
print (data)
if data.find('PING') != -1:
irc.send(data.replace('PING', 'PONG')) #responds to PINGS from the server
if data.find('!test') != -1: #!test command
message('Hi')
您需要转换为 bytes:
irc.send(bytes("PASS {}\r\n".format(password), 'utf-8'))
irc.send(bytes('USER {} 0 * :{}\r\n'.format(nick,bot_owner),"utf-8"))
irc.send(bytes('NICK {}\r\n'.format(nick),"utf-8"))
irc.send(bytes('JOIN {}\r\n'.format(channel),"utf-8"))
并解码:
recv(1204).decode("utf-8")
首先,我无法在任何地方找到答案。我不确定它是否需要导入,或者它是否只是做得不好的代码。简而言之 shell,通过这个项目,我将使用 SMS 消息和许多其他东西制作一个更好的 twitch 关注者通知程序。
编辑:整个崩溃日志如下:
line 16 in <module>
irc.send('PASS ' + password + '\r\n')
TypeError: Does not support the buffer interface
另外,我不得不反复双击文件才能得到这个,所以如果它有点不对,我很抱歉。我无法使编码的崩溃日志正常工作。
import socket #imports module allowing connection to IRC
import threading #imports module allowing timing functions
bot_owner = 'BetterFollowerBot'
nick = 'BetterFollowerBot'
channel = '#BetterFollowerBot'
server = 'irc.twitch.tv'
password = '~Took This Out~'
queue = 0 #sets variable for anti-spam queue functionality
irc = socket.socket()
irc.connect((server, 6667)) #connects to the server
#sends variables for connection to twitch chat
irc.send('PASS ' + password + '\r\n')
irc.send('USER ' + nick + ' 0 * :' + bot_owner + '\r\n')
irc.send('NICK ' + nick + '\r\n')
irc.send('JOIN ' + channel + '\r\n')
def message(msg): #function for sending messages to the IRC chat
global queue
queue = queue + 1
print (queue)
if queue < 20: #ensures does not send >20 msgs per 30 seconds.
irc.send('PRIVMSG ' + channel + ' :' + msg + '\r\n')
else:
print ('Message deleted')
def queuetimer(): #function for resetting the queue every 30 seconds
global queue
print ('queue reset')
queue = 0
threading.Timer(30,queuetimer).start()
queuetimer()
while True:
data = irc.recv(1204) #gets output from IRC server
user = data.split(':')[1]
user = user.split('!')[0] #determines the sender of the messages
print (data)
if data.find('PING') != -1:
irc.send(data.replace('PING', 'PONG')) #responds to PINGS from the server
if data.find('!test') != -1: #!test command
message('Hi')
您需要转换为 bytes:
irc.send(bytes("PASS {}\r\n".format(password), 'utf-8'))
irc.send(bytes('USER {} 0 * :{}\r\n'.format(nick,bot_owner),"utf-8"))
irc.send(bytes('NICK {}\r\n'.format(nick),"utf-8"))
irc.send(bytes('JOIN {}\r\n'.format(channel),"utf-8"))
并解码:
recv(1204).decode("utf-8")