我正试图通过twitch上的聊天机器人加入数百个频道。然而,socket gets连接被远程主机错误强制关闭,我的问题是我不知道如何添加多个套接字,因此如果一个套接字死亡,我可以重新加入该套接字上的通道并继续,相反,它关闭客户端并尝试再次加入所有通道
这是我的密码:
import socket
import time
import errno
with open('channels.txt') as f:
channel_list = f.readlines()
def connect():
global sock
sock = socket.socket(socket.AF_INET,socket.SOCK_STREAM)
sock.connect(('irc.chat.twitch.tv', 6667))
def sendRaw(data, log:bool=True):
try:
if log:
print(f"sending raw: {data}")
sock.send(bytes(data + '\r\n', 'utf-8'))
except IOError as e:
if e.errno == errno.EPIPE:
pass
def joinchannel(channel):
channel = "#" + channel.lower() if not channel.startswith("#") else channel.lower()
sendRaw('JOIN ' + channel)
def login_and_join():
sendRaw('PASS oauth:') # less likely to leak
sendRaw('NICK justinfan0987')
# requests more information
sendRaw('CAP REQ :twitch.tv/commands')
sendRaw('CAP REQ :twitch.tv/tags')
sendRaw('JOIN #turtoise')
sendRaw('JOIN #nimbot0')
sendRaw('JOIN #peeandpoob')
for channel in channel_list:
joinchannel(channel)
def loop():
while True:
time.sleep(0.1)
try:
data = sock.recv(4096)
decoded_data = data.decode("utf-8").split("\r\n")
if decoded_data is None:
print("no data")
print(decoded_data)
except Exception as e:
print(e)
def run_channel_joiner():
connect()
login_and_join()
loop()
run_channel_joiner()
下面是一些要测试的通道: https://pastebin.com/avn0PVVg
目前没有回答
相关问题 更多 >
编程相关推荐