59 lines
1.3 KiB
Python
Executable File
59 lines
1.3 KiB
Python
Executable File
#!/usr/bin/env python
|
|
|
|
import sys
|
|
import time
|
|
from threading import Thread
|
|
# from queue import Queue
|
|
|
|
from utils import create_socket, IRC
|
|
|
|
server_name = 'localhost'
|
|
server_port = 5500
|
|
|
|
NICK = "GLaDOS"
|
|
PASSWORD = "abcdef123456"
|
|
|
|
class Bot(object):
|
|
def __init__(self, irc, v5):
|
|
self.irc = IRC(irc)
|
|
self.v5_sock = create_socket("v5", v5)
|
|
self.channels = ["#general", "#glados"]
|
|
self.connected = False # Dirty lock
|
|
|
|
def run(self):
|
|
# Start a thread for raw IRC messages
|
|
Thread(target=self.irc.raw_handle).start()
|
|
|
|
# Authenticate to server
|
|
self.irc.connect(NICK, PASSWORD)
|
|
for c in self.channels:
|
|
self.irc.join(c)
|
|
|
|
# Finally, handle v5 messages
|
|
while True:
|
|
data, addr = self.v5_sock.recvfrom(4096)
|
|
data = data.decode()
|
|
print(f"v5: Received <{data}>")
|
|
self.irc.msg(data, "#glados")
|
|
|
|
def handle_irc(self):
|
|
self.connected = True
|
|
print("irc connected")
|
|
|
|
while True:
|
|
msg = self.irc.get_msg()
|
|
print(f"IRC: {data}")
|
|
|
|
if "Hello" in msg:
|
|
self.irc.msg("Hello :)", "#glados")
|
|
|
|
|
|
glados = Bot(
|
|
('irc.planet-casio.com', 6697),
|
|
('127.0.0.1', 5555)
|
|
)
|
|
|
|
glados.run()
|
|
|
|
#abcdef123456
|