GLaDOS/bot.py

37 lines
869 B
Python
Raw Normal View History

2020-11-08 01:41:33 +01:00
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
2020-11-08 01:49:09 +01:00
self._sock = socket.socket(socket.AF_INET,socket.SOCK_DGRAM)
2020-11-08 01:41:33 +01:00
self._v5_handler = Thread(target=self._handle_v5)
2020-11-08 01:49:09 +01:00
self._sock.bind(v5)
2020-11-08 01:41:33 +01:00
def start(self):
# Start IRC
self.irc.start(USER, PASSWORD)
2020-11-08 01:49:09 +01:00
# Join channels
2020-11-08 01:41:33 +01:00
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:
2020-11-08 01:49:09 +01:00
data, addr = self._sock.recvfrom(4096)
2020-11-08 01:41:33 +01:00
data = data.decode()
print(f"v5: Received <{data}>")
2020-11-08 01:49:09 +01:00
self.irc.send("#glados", data)