ping pong
Browse files- utils/logger.py +22 -8
utils/logger.py
CHANGED
|
@@ -68,6 +68,10 @@ class IRCLogger:
|
|
| 68 |
# Join the IRC channel
|
| 69 |
self.join_channel()
|
| 70 |
|
|
|
|
|
|
|
|
|
|
|
|
|
| 71 |
def send_message(self, message):
|
| 72 |
self.socket.send(bytes("PRIVMSG {} :{}\r\n".format(self.channel, message), "UTF-8"))
|
| 73 |
|
|
@@ -76,16 +80,26 @@ class IRCLogger:
|
|
| 76 |
self.socket.send(bytes("USER {} 0 * :{}\r\n".format(self.nickname, self.nickname), "UTF-8"))
|
| 77 |
self.socket.send(bytes("JOIN {}\r\n".format(self.channel), "UTF-8"))
|
| 78 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 79 |
def log_message(self, message):
|
| 80 |
self.logger.info(message)
|
| 81 |
self.send_message(message)
|
| 82 |
|
| 83 |
-
|
| 84 |
-
|
| 85 |
-
|
| 86 |
-
|
| 87 |
-
|
| 88 |
-
|
| 89 |
-
|
| 90 |
-
|
| 91 |
|
|
|
|
|
|
|
|
|
| 68 |
# Join the IRC channel
|
| 69 |
self.join_channel()
|
| 70 |
|
| 71 |
+
# Start a thread to handle incoming messages
|
| 72 |
+
receive_thread = threading.Thread(target=self.receive_messages)
|
| 73 |
+
receive_thread.start()
|
| 74 |
+
|
| 75 |
def send_message(self, message):
|
| 76 |
self.socket.send(bytes("PRIVMSG {} :{}\r\n".format(self.channel, message), "UTF-8"))
|
| 77 |
|
|
|
|
| 80 |
self.socket.send(bytes("USER {} 0 * :{}\r\n".format(self.nickname, self.nickname), "UTF-8"))
|
| 81 |
self.socket.send(bytes("JOIN {}\r\n".format(self.channel), "UTF-8"))
|
| 82 |
|
| 83 |
+
def receive_messages(self):
|
| 84 |
+
while True:
|
| 85 |
+
data = self.socket.recv(4096).decode("UTF-8")
|
| 86 |
+
if data.startswith("PING"):
|
| 87 |
+
self.socket.send(bytes("PONG {}\r\n".format(data.split()[1]), "UTF-8"))
|
| 88 |
+
else:
|
| 89 |
+
self.logger.info(data)
|
| 90 |
+
|
| 91 |
def log_message(self, message):
|
| 92 |
self.logger.info(message)
|
| 93 |
self.send_message(message)
|
| 94 |
|
| 95 |
+
if __name__ == "__main__":
|
| 96 |
+
# Configure logging
|
| 97 |
+
logging.basicConfig(level=logging.INFO)
|
| 98 |
+
|
| 99 |
+
server = "irc.efnet.org"
|
| 100 |
+
port = 6667
|
| 101 |
+
nickname = "HFLogger"
|
| 102 |
+
channel = "#hflogs"
|
| 103 |
|
| 104 |
+
# logger = IRCLogger(server, port, nickname, channel)
|
| 105 |
+
# logger.log_message("This is a test log message from the IRC logger.")
|