summary refs log tree commit diff
path: root/client.py
diff options
context:
space:
mode:
Diffstat (limited to 'client.py')
-rw-r--r--client.py65
1 files changed, 37 insertions, 28 deletions
diff --git a/client.py b/client.py
index a3ce217..d1e7474 100644
--- a/client.py
+++ b/client.py
@@ -1,6 +1,6 @@
 # Part of rabbitears See LICENSE for permissions
 # Copyright (C) 2022 Matt Arnold
-from IRC import *
+from IRC import IRCBot, IRCError, printred
 import os
 import random
 import ssl
@@ -8,53 +8,64 @@ import socket
 import sys
 import irctokens
 import json
+import re
 
-LINEEND = '\r\n'
+horse_counter = 0
+trigger_regex = re.compile(".*frog.*")
+LINEEND = "\r\n"
 # IRC Config
 config = None
-with open('config.json') as f:
+with open("config.json") as f:
     jld = f.read()
     config = json.loads(jld)
 
 
-
-# Need to pass the IRCBot class a socket the reason it doesn't do this itself is 
+# Need to pass the IRCBot class a socket the reason it doesn't do this itself is
 # so you can set up TLS or not as you need it
 # These provide good defaults. But your milage may vary
 oursock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
 context = ssl.SSLContext()
 context.check_hostname = False
 context.verify_mode = ssl.CERT_NONE
-oursock = context.wrap_socket(oursock, server_hostname=config['hostname'])
+oursock = context.wrap_socket(oursock, server_hostname=config["hostname"])
 irc = IRCBot(oursock)
-irc.connect(config['hostname'],
-    config['port'],
-    config['channel'],
-    config['nick'],
-    config['nickpass'])
+irc.connect(
+    config["hostname"],
+    config["port"],
+    config["channel"],
+    config["nick"],
+    config["nickpass"],
+)
+
 
 def generate_response(person, message):
     msg = message.strip(LINEEND)
-    if 'cool.person' in person and msg.lower() == "hello botley":
-        return "Greetings Master"
-    elif msg.lower() == "hello":
-        return "Greetings Human!"
-    elif "Ground Control to Major Tom" in msg:
-        return "Put your helmet on!"
-    elif "Ziggy Stardust" in msg:
-        return "Looks good in leather pants"
-    else:
-        return None
+    if "horse" in person:
+        global horse_counter
+        horse_counter += 1
+        if horse_counter % 50 == 0:
+            return "Ribbit, Frog on a horse, nobody knows where they'll go"
+        return "Ribbit, Frog on the floor where did she come from "
+    if trigger_regex.match(msg.lower()):
+        return "ribbit ribbit "
+    if "dozens" in person:
+        dice = random.randint(1, 20)
+        if dice <= 7:
+            return "watch it horse you almost clobbered me"
+    if "acdw" in person:
+        dice = random.randint(1, 12)
+        if dice == 1 or dice == 12:
+            return "I've been chilling in the basement for a minute"
+
 
 while True:
     try:
-
         text = irc.get_response()
-        print(text[0],text[1],text[2])
-        if text[1] == 'PRIVMSG' and text[2][0] == config['channel']:
-            r = generate_response(text[0],text[2][1])
+        print(text[0], text[1], text[2])
+        if text[1] == "PRIVMSG" and text[2][0] == config["channel"]:
+            r = generate_response(text[0], text[2][1])
             if r is not None:
-                irc.send_privmsg(config['channel'],r)
+                irc.send_privmsg(config["channel"], r)
     except KeyboardInterrupt:
         irc.send_quit("Ctrl-C Pressed")
         msg = oursock.recv(4096)
@@ -63,5 +74,3 @@ while True:
     except IRCError as e:
         printred(e)
         sys.exit(1)
-
-