-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathirc.py
More file actions
33 lines (24 loc) · 1.02 KB
/
Copy pathirc.py
File metadata and controls
33 lines (24 loc) · 1.02 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
import socket
class IRC:
def __init__(self, channel_name: str, secret: str, nickname: str):
self.server = 'irc.chat.twitch.tv'
self.port = 6667
self.nickname = nickname
self.token = secret
self.channel = '#' + channel_name
self.sock = socket.socket()
self.sock.connect((self.server, self.port))
self.sock.send(f"PASS {self.token}\r\n".encode('utf-8'))
self.sock.send(f"NICK {self.nickname}\r\n".encode('utf-8'))
self.sock.send(f"JOIN {self.channel}\r\n".encode('utf-8'))
self.sock.recv(2048).decode('utf-8')
self.sock.recv(2048).decode('utf-8')
def write(self, message: str):
self.sock.send (('PRIVMSG '+ self.channel + ' : ' + message + '\r\n').encode('utf-8'))
def read(self):
resp = self.sock.recv(2048).decode('utf-8')
if resp.startswith('PING'):
self.sock.send("PONG\n".encode('utf-8'))
return resp
def close():
self.sock.close()