diff options
author | Griffin Smith <grfn@gws.fyi> | 2021-03-28T15·05-0400 |
---|---|---|
committer | glittershark <grfn@gws.fyi> | 2021-03-28T17·07+0000 |
commit | db62866d820cf524b67cebe34033d3928804cf3c (patch) | |
tree | 5a68fa9f462eae8f08ad78c4383bb9b321866d5b /web | |
parent | 1f250e374d9da401e60f2db02151af8f6bdb7c28 (diff) |
feat(web/panettone): Noping issue authors' usernames r/2355
When sending irc notifications, insert a zero-width space after the first character of the username of the author of issues, to prevent that user from receiving a ping. Fixes: b/95 Change-Id: Ibcacb45129b2cb99b587744eb61f4f1dbc0060d6 Reviewed-on: https://cl.tvl.fyi/c/depot/+/2693 Tested-by: BuildkiteCI Reviewed-by: tazjin <mail@tazj.in>
Diffstat (limited to 'web')
-rw-r--r-- | web/panettone/src/irc.lisp | 6 | ||||
-rw-r--r-- | web/panettone/src/packages.lisp | 3 | ||||
-rw-r--r-- | web/panettone/src/panettone.lisp | 9 | ||||
-rw-r--r-- | web/panettone/test/irc_test.lisp | 5 |
4 files changed, 20 insertions, 3 deletions
diff --git a/web/panettone/src/irc.lisp b/web/panettone/src/irc.lisp index f116e2a70631..2ab72a2e391e 100644 --- a/web/panettone/src/irc.lisp +++ b/web/panettone/src/irc.lisp @@ -2,6 +2,12 @@ (in-package :panettone.irc) +(defun noping (s) + (format nil "~A~A~A" + (char s 0) + #\ZERO_WIDTH_SPACE + (subseq s 1))) + (defun get-irccat-config () "Reads the IRCCATHOST and IRCCATPORT environment variables, and returns them as two values" diff --git a/web/panettone/src/packages.lisp b/web/panettone/src/packages.lisp index c5fe79b7bc81..3b6edcdd14e3 100644 --- a/web/panettone/src/packages.lisp +++ b/web/panettone/src/packages.lisp @@ -13,8 +13,9 @@ (:export :render-inline-markdown)) (defpackage panettone.irc + (:nicknames :irc) (:use :cl :usocket) - (:export :send-irc-notification)) + (:export :noping :send-irc-notification)) (defpackage :panettone.authentication (:nicknames :authn) diff --git a/web/panettone/src/panettone.lisp b/web/panettone/src/panettone.lisp index 6e43312327ea..c97a988404fa 100644 --- a/web/panettone/src/panettone.lisp +++ b/web/panettone/src/panettone.lisp @@ -460,7 +460,9 @@ (send-irc-notification (format nil "b/~A: \"~A\" opened by ~A - https://b.tvl.fyi/issues/~A" - (id issue) subject (cn *user*) + (id issue) + subject + (irc:noping (cn *user*)) (id issue)) :channel (or (uiop:getenvp "ISSUECHANNEL") "##tvl-dev")) @@ -524,7 +526,10 @@ (send-irc-notification (format nil "b/~A: \"~A\" closed by ~A - https://b.tvl.fyi/issues/~A" - id (subject issue) (cn *user*) id) + id + (subject issue) + (irc:noping (cn *user*)) + id) :channel (or (uiop:getenvp "ISSUECHANNEL") "##tvl-dev"))) (hunchentoot:redirect (format nil "/issues/~A" id))) diff --git a/web/panettone/test/irc_test.lisp b/web/panettone/test/irc_test.lisp new file mode 100644 index 000000000000..0224836cbc32 --- /dev/null +++ b/web/panettone/test/irc_test.lisp @@ -0,0 +1,5 @@ +(in-package :panettone.tests) +(declaim (optimize (safety 3))) + +(test noping-test + (is (not (equal "grfn" (panettone.irc:noping "grfn"))))) |