summary refs log tree commit diff
diff options
context:
space:
mode:
authorJune McEnroe <june@causal.agency>2020-04-05 11:27:51 -0400
committerJune McEnroe <june@causal.agency>2020-04-05 11:27:51 -0400
commit8a4a9999baa28b6ace84fc1a5be69f8c71f3f88e (patch)
treee8ef22bcb8cbc927cde9c6bbf842a0f8693dc4fb
parentAdd unscoop matchers for ban/unban events (diff)
downloadlitterbox-8a4a9999baa28b6ace84fc1a5be69f8c71f3f88e.tar.gz
litterbox-8a4a9999baa28b6ace84fc1a5be69f8c71f3f88e.zip
Parse mode types from ISUPPORT
Diffstat (limited to '')
-rw-r--r--litterbox.c16
1 files changed, 14 insertions, 2 deletions
diff --git a/litterbox.c b/litterbox.c
index d0cafef..aa6ca1a 100644
--- a/litterbox.c
+++ b/litterbox.c
@@ -122,6 +122,10 @@ static char *self;
 static char *network;
 static char *chanTypes;
 static char *prefixes;
+static char *prefixModes;
+static char *listModes;
+static char *paramModes;
+static char *setParamModes;
 
 static void set(char **field, const char *value) {
 	free(*field);
@@ -172,9 +176,13 @@ static void handleReplyISupport(struct Message *msg) {
 		} else if (!strcmp(key, "CHANTYPES")) {
 			set(&chanTypes, msg->params[i]);
 		} else if (!strcmp(key, "PREFIX")) {
-			strsep(&msg->params[i], ")");
-			if (!msg->params[i]) continue;
+			strsep(&msg->params[i], "(");
+			set(&prefixModes, strsep(&msg->params[i], ")"));
 			set(&prefixes, msg->params[i]);
+		} else if (!strcmp(key, "CHANMODES")) {
+			set(&listModes, strsep(&msg->params[i], ","));
+			set(&paramModes, strsep(&msg->params[i], ","));
+			set(&setParamModes, strsep(&msg->params[i], ","));
 		}
 	}
 }
@@ -759,6 +767,10 @@ int main(int argc, char *argv[]) {
 	set(&network, (defaultNetwork ? defaultNetwork : host));
 	set(&chanTypes, "#&");
 	set(&prefixes, "@+");
+	set(&prefixModes, "ov");
+	set(&listModes, "b");
+	set(&paramModes, "k");
+	set(&setParamModes, "l");
 
 	client = tls_client();
 	if (!client) errx(EX_SOFTWARE, "tls_client");
title='2021-09-15 19:02:12 -0400'>2021-09-15Remove typer, add downgrade to READMEJune McEnroe 2021-09-15Set bot mode on downgradeJune McEnroe 2021-09-15Enter capsicum in downgradeJune McEnroe 2021-09-15Factor out common parts of downgrade messagesJune McEnroe Also bump the message cap to 1024 because that is ostensibly useful for replying to older messages. 2021-09-14Add downgrade IRC botJune McEnroe 2021-09-14Sort by title if authors matchJune McEnroe There are probably better things to sort by but title definitely always exists. 2021-09-13Swap-remove tags as they're foundJune McEnroe This makes it even faster. From ~1s on a sqlite3.c amalgamation to ~0.85s. 2021-09-12Replace htagml regex with strncmpJune McEnroe Since ctags only ever produces regular expressions of the form /^re$/ or /^re/ with no other special characters, instead unescape the pattern and simply use strncmp. Running on a sqlite3.c amalgamation, the regex version takes ~37s while the strncmp version takes ~1s, producing identical output. Big win! 2021-09-11Also defer printing comment for lone close-parensJune McEnroe 2021-09-10Publish "git-comment"June McEnroe 2021-09-10Add git comment --pretty optionJune McEnroe 2021-09-08Defer printing comment if line is blank or closing braceJune McEnroe This fixes badly indented comments. 2021-09-08Up default min-repeat to 30 linesJune McEnroe 2021-09-08Handle dirty lines in git-commentJune McEnroe 2021-09-08Document and install git-commentJune McEnroe 2021-09-08Add repeat and all options to git-commentJune McEnroe 2021-09-08Add group threshold to git-commentJune McEnroe