feat(web/panettone): Noping issue authors' usernames
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>
This commit is contained in:
parent
1f250e374d
commit
db62866d82
4 changed files with 20 additions and 3 deletions
|
@ -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"
|
||||
|
|
|
@ -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)
|
||||
|
|
|
@ -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)))
|
||||
|
|
5
web/panettone/test/irc_test.lisp
Normal file
5
web/panettone/test/irc_test.lisp
Normal file
|
@ -0,0 +1,5 @@
|
|||
(in-package :panettone.tests)
|
||||
(declaim (optimize (safety 3)))
|
||||
|
||||
(test noping-test
|
||||
(is (not (equal "grfn" (panettone.irc:noping "grfn")))))
|
Loading…
Reference in a new issue