GLaDOS/bot.py

37 lines
869 B
Python

import socket
from threading import Thread
from irc import IRC
from secrets import USER, PASSWORD
class Bot(object):
def __init__(self, irc, v5, channels):
self.irc = IRC(*irc)
self.channels = channels
self._sock = socket.socket(socket.AF_INET,socket.SOCK_DGRAM)
self._v5_handler = Thread(target=self._handle_v5)
self._sock.bind(v5)
def start(self):
# Start IRC
self.irc.start(USER, PASSWORD)
# Join channels
for c in self.channels:
self.irc.join(c)
# Start v5 handler
self._v5_handler.start()
# Run IRC
self.irc.run()
def _handle_v5(self):
while True:
data, addr = self._sock.recvfrom(4096)
data = data.decode()
print(f"v5: Received <{data}>")
self.irc.send("#glados", data)