about summary refs log tree commit diff
path: root/contrib/palaver
diff options
context:
space:
mode:
authorJune McEnroe <june@causal.agency>2020-08-16 15:33:47 -0400
committerJune McEnroe <june@causal.agency>2020-08-16 15:39:00 -0400
commitaede92502c4fcf759f4fa4d6965595aee645c0a8 (patch)
treebf9351f6a7f36f9e01332e0ef34ab37196bdf01b /contrib/palaver
parentcontrib/palaver: Don't set channel for PMs (diff)
downloadpounce-aede92502c4fcf759f4fa4d6965595aee645c0a8.tar.gz
pounce-aede92502c4fcf759f4fa4d6965595aee645c0a8.zip
contrib/palaver: Add no message preview flags
Diffstat (limited to 'contrib/palaver')
-rw-r--r--contrib/palaver/notify.c13
-rw-r--r--contrib/palaver/pounce-palaver.110
2 files changed, 19 insertions, 4 deletions
diff --git a/contrib/palaver/notify.c b/contrib/palaver/notify.c
index 2d2d0bb..e35dabb 100644
--- a/contrib/palaver/notify.c
+++ b/contrib/palaver/notify.c
@@ -527,17 +527,24 @@ static void handleReplyUnaway(struct Message *msg) {
 	sqlite3_reset(stmts[Clear]);
 }
 
+static bool noPreview;
+static bool noPrivatePreview;
+
 static void jsonBody(
 	char *buf, size_t cap,
 	struct Message *msg, const char *network, bool preview
 ) {
+	bool private = (msg->params[0][0] != '#');
+	if (private && noPrivatePreview) preview = false;
+	if (noPreview) preview = false;
+
 	FILE *file = fmemopen(buf, cap, "w");
 	if (!file) err(EX_OSERR, "fmemopen");
 
 	fprintf(file, "{\"badge\":%d", badge);
 	fprintf(file, ",\"sender\":");
 	jsonString(file, msg->nick);
-	if (strcmp(msg->params[0], nick)) {
+	if (!private) {
 		fprintf(file, ",\"channel\":");
 		jsonString(file, msg->params[0]);
 	}
@@ -654,9 +661,11 @@ int main(int argc, char *argv[]) {
 	const char *pass = NULL;
 	const char *user = "pounce-palaver";
 
-	for (int opt; 0 < (opt = getopt(argc, argv, "!c:d:k:p:u:vw:"));) {
+	for (int opt; 0 < (opt = getopt(argc, argv, "!NPc:d:k:p:u:vw:"));) {
 		switch (opt) {
 			break; case '!': insecure = true;
+			break; case 'N': noPreview = true;
+			break; case 'P': noPrivatePreview = true;
 			break; case 'c': cert = optarg;
 			break; case 'd': path = optarg;
 			break; case 'k': priv = optarg;
diff --git a/contrib/palaver/pounce-palaver.1 b/contrib/palaver/pounce-palaver.1
index 187b8ee..4f0b870 100644
--- a/contrib/palaver/pounce-palaver.1
+++ b/contrib/palaver/pounce-palaver.1
@@ -1,4 +1,4 @@
-.Dd August 11, 2020
+.Dd August 16, 2020
 .Dt POUNCE-PALAVER 1
 .Os
 .
@@ -8,7 +8,7 @@
 .
 .Sh SYNOPSIS
 .Nm
-.Op Fl v
+.Op Fl PNv
 .Op Fl c Ar cert
 .Op Fl d Ar path
 .Op Fl k Ar priv
@@ -32,6 +32,12 @@ option must be enabled in
 .Pp
 The arguments are as follows:
 .Bl -tag -width Ds
+.It Fl N
+Never send message previews,
+regardless of the app preferences.
+.It Fl P
+Never send message previews
+for private messages.
 .It Fl c Ar cert
 Load the TLS client certificate from
 .Ar path .