summary refs log tree commit diff
path: root/IRC.py
diff options
context:
space:
mode:
Diffstat (limited to 'IRC.py')
-rw-r--r--IRC.py53
1 files changed, 30 insertions, 23 deletions
diff --git a/IRC.py b/IRC.py
index 90ef1fa..9361982 100644
--- a/IRC.py
+++ b/IRC.py
@@ -4,26 +4,31 @@ import socket
 import sys
 import irctokens
 import time
+
+
 class IRCBadMessage(Exception):
     pass
+
+
 class IRCError(Exception):
     pass
 
+
 def printred(s):
     t = f"\033[1;31m {s} \033[0m\n"
     print(t)
 
+
 def parsemsg(s):
-    """Breaks a message from an IRC server into its prefix, command, and arguments.
-    """
-    prefix = ''
+    """Breaks a message from an IRC server into its prefix, command, and arguments."""
+    prefix = ""
     trailing = []
     if not s:
-       raise IRCBadMessage("Empty line.")
-    if s[0] == ':':
-        prefix, s = s[1:].split(' ', 1)
-    if s.find(' :') != -1:
-        s, trailing = s.split(' :', 1)
+        raise IRCBadMessage("Empty line.")
+    if s[0] == ":":
+        prefix, s = s[1:].split(" ", 1)
+    if s.find(" :") != -1:
+        s, trailing = s.split(" :", 1)
         args = s.split()
         args.append(trailing)
     else:
@@ -32,10 +37,10 @@ def parsemsg(s):
     return prefix, command, args
 
 
-LINEEND = '\r\n'
+LINEEND = "\r\n"
 
-class IRCBot:
 
+class IRCBot:
     irc = None
 
     def __init__(self, sock, config=None):
@@ -45,10 +50,10 @@ class IRCBot:
 
     def send_cmd(self, line):
         """Send an IRC Command, takes an IRC command string without the CRLF
-        Returns encoded msg on success raises IRCError on failure """
+        Returns encoded msg on success raises IRCError on failure"""
         if not self.connected:
             raise IRCError("Not Connected")
-        encmsg = bytes(line.format() + LINEEND, 'UTF-8' )
+        encmsg = bytes(line.format() + LINEEND, "UTF-8")
         expected = len(encmsg)
         if self.irc.send(encmsg) == expected:
             return str(encmsg)
@@ -56,16 +61,15 @@ class IRCBot:
             raise IRCError("Unexpected Send Length")
 
     def on_welcome(self, *args, **kwargs):
-        authmsg = irctokens.build("NICKSERV", ['IDENTIFY', self.config['nickpass']])
+        authmsg = irctokens.build("NICKSERV", ["IDENTIFY", self.config["nickpass"]])
         self.send_cmd(authmsg)
-        joinmsg = irctokens.build("JOIN", [self.config['channel']])
+        joinmsg = irctokens.build("JOIN", [self.config["channel"]])
         self.send_cmd(joinmsg)
 
-        
     def send_privmsg(self, dst, msg):
-        msg = irctokens.build("PRIVMSG",[dst, msg])
+        msg = irctokens.build("PRIVMSG", [dst, msg])
         self.send_cmd(msg)
-    
+
     def send_quit(self, quitmsg):
         msg = irctokens.build("QUIT", [quitmsg])
         print(msg)
@@ -87,12 +91,16 @@ class IRCBot:
         self.connected = True
 
         # Perform user registration
-        usermsg = irctokens.build("USER", [botnick, "0","*", "RabbitEars Bot"]).format()
+        password_msg = irctokens.build("PASS", [self.config["nickpass"]])
+        self.send_cmd(password_msg)
+        usermsg = irctokens.build(
+            "USER", [botnick, "0", "*", "Nyx Kermitsdotter"]
+        ).format()
         print(usermsg)
         self.send_cmd(usermsg)
         nickmsg = irctokens.build("NICK", [botnick])
         self.send_cmd(nickmsg)
-    
+
     def get_response(self):
         # Get the response
         resp = self.irc.recv(4096).decode("UTF-8")
@@ -103,9 +111,8 @@ class IRCBot:
             self.on_welcome(nwmsg.params)
         if nwmsg.command == "ERROR":
             raise IRCError(str(nwmsg.params[0]))
-        if nwmsg.command == 'PING':
-            print('Sending pong')
-            self.irc.send(
-                bytes('PONG ' + LINEEND, "UTF-8"))
+        if nwmsg.command == "PING":
+            print("Sending pong")
+            self.irc.send(bytes("PONG " + LINEEND, "UTF-8"))
 
         return msg