summary refs log tree commit diff
diff options
context:
space:
mode:
-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 .
'> 2019-09-28Add The Black Tides of HeavenJune McEnroe 2019-09-27Fail on HTTP failure status in titleJune McEnroe 2019-09-23Add Trail of LightningJune McEnroe 2019-09-22Revert "Enable cookies in title"June McEnroe This reverts commit 3231fe21d3b389448c9a5ca7b4c91fdd25c9e677. 2019-09-20Enable cookies in titleJune McEnroe Perhaps this will make it less suspicious to Google. Who knows. 2019-09-16Use sensitivity aliases in TF2June McEnroe 2019-09-16Add The Just CityJune McEnroe 2019-09-12Only GET the final redirect locationJune McEnroe 2019-09-12Consume entire bodyJune McEnroe Aborting the request and leaving data around may be causing intermittent errors. Just discard the rest of the data. 2019-09-10Add title -v flagJune McEnroe 2019-09-10Use curl error bufferJune McEnroe 2019-09-10Set Accept-Encoding in titleJune McEnroe Because apparently it's fine for servers to respond with Content-Encoding you didn't ask for, and curl won't decode it if you didn't ask for it. 2019-09-08Set title User-AgentJune McEnroe Some things don't like you if you don't send one. 2019-09-07Add -x flag to titleJune McEnroe 2019-09-07Ignore SIGPIPE in relayJune McEnroe Allows restarting consumers safely. 2019-09-07Add A Memory Called EmpireJune McEnroe 2019-09-05Handle lack of Content-TypeJune McEnroe 2019-09-05Use CURLINFO_CONTENT_TYPEJune McEnroe Oops, didn't see this. 2019-09-05Decode entities in titlesJune McEnroe 2019-09-05Print title as soon as it's availableJune McEnroe 2019-09-05Use CURL_PREFIX to set flagsJune McEnroe 2019-09-05Add titleJune McEnroe 2019-09-04Add Avorter n'est pas tuerJune McEnroe 2019-08-29Unset executable on shell scriptsJune McEnroe 2019-08-29Add long-missing setopt to bin.7June McEnroe 2019-08-29Add editJune McEnroe