about summary refs log tree commit diff
diff options
context:
space:
mode:
authorJune McEnroe <june@causal.agency>2020-04-05 11:09:45 -0400
committerJune McEnroe <june@causal.agency>2020-04-05 11:13:48 -0400
commit5fce836036bc60d250b73b8883f02184435fb2c8 (patch)
tree58d7ce04e92926473bcec00bb21a007975afaddf
parentCheck unscoop regexps with make test (diff)
downloadlitterbox-5fce836036bc60d250b73b8883f02184435fb2c8.tar.gz
litterbox-5fce836036bc60d250b73b8883f02184435fb2c8.zip
Add unscoop matchers for ban/unban events
The IRC and Textual matchers miss bans mixed with other mode changes,
but those are rare.
-rw-r--r--unscoop.c22
1 files changed, 20 insertions, 2 deletions
diff --git a/unscoop.c b/unscoop.c
index eabb594..2e4d2d8 100644
--- a/unscoop.c
+++ b/unscoop.c
@@ -70,7 +70,13 @@ static const struct Matcher Catgirl[] = {
 	}, {
 		P1_TIME "([^ ]+) removes the sign in",
 		Topic, { ":time", ":nick" },
-	},
+	}, {
+		P1_TIME "([^ ]+) bans [+]b ([^ ]+)",
+		Ban, { ":time", ":nick", ":target" },
+	}, {
+		P1_TIME "([^ ]+) unbans [-]b ([^ ]+)",
+		Unban, { ":time", ":nick", ":target" },
+	}
 };
 
 static const struct Matcher Generic[] = {
@@ -119,6 +125,12 @@ static const struct Matcher IRC[] = {
 	}, {
 		P2_TAGS P3_ORIGIN "TOPIC [^ ]+( :?(.+))?",
 		Topic, { NULL, ":time", ":nick", ":user", ":host", NULL, ":message" },
+	}, {
+		P2_TAGS P3_ORIGIN "MODE [^ ]+ [+]b+ :?(.+)",
+		Ban, { NULL, ":time", ":nick", ":user", ":host", ":target" },
+	}, {
+		P2_TAGS P3_ORIGIN "MODE [^ ]+ [-]b+ :?(.+)",
+		Unban, { NULL, ":time", ":nick", ":user", ":host", ":target" },
 	},
 };
 #undef P2_TAGS
@@ -154,7 +166,13 @@ static const struct Matcher Textual[] = {
 	}, {
 		P1_TIME "([^ ]+) changed the topic to (.+)",
 		Topic, { ":time", ":nick", ":message" },
-	},
+	}, {
+		P1_TIME "([^ ]+) sets mode [+]b+ (.+)",
+		Ban, { ":time", ":nick", ":target" },
+	}, {
+		P1_TIME "([^ ]+) sets mode [-]b+ (.+)",
+		Unban, { ":time", ":nick", ":target" },
+	}
 };
 #undef P2_USERHOST
 #undef P2_MESSAGE