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)
|
(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 ()
|
(defun get-irccat-config ()
|
||||||
"Reads the IRCCATHOST and IRCCATPORT environment variables, and returns them
|
"Reads the IRCCATHOST and IRCCATPORT environment variables, and returns them
|
||||||
as two values"
|
as two values"
|
||||||
|
|
|
@ -13,8 +13,9 @@
|
||||||
(:export :render-inline-markdown))
|
(:export :render-inline-markdown))
|
||||||
|
|
||||||
(defpackage panettone.irc
|
(defpackage panettone.irc
|
||||||
|
(:nicknames :irc)
|
||||||
(:use :cl :usocket)
|
(:use :cl :usocket)
|
||||||
(:export :send-irc-notification))
|
(:export :noping :send-irc-notification))
|
||||||
|
|
||||||
(defpackage :panettone.authentication
|
(defpackage :panettone.authentication
|
||||||
(:nicknames :authn)
|
(:nicknames :authn)
|
||||||
|
|
|
@ -460,7 +460,9 @@
|
||||||
(send-irc-notification
|
(send-irc-notification
|
||||||
(format nil
|
(format nil
|
||||||
"b/~A: \"~A\" opened by ~A - https://b.tvl.fyi/issues/~A"
|
"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))
|
(id issue))
|
||||||
:channel (or (uiop:getenvp "ISSUECHANNEL")
|
:channel (or (uiop:getenvp "ISSUECHANNEL")
|
||||||
"##tvl-dev"))
|
"##tvl-dev"))
|
||||||
|
@ -524,7 +526,10 @@
|
||||||
(send-irc-notification
|
(send-irc-notification
|
||||||
(format nil
|
(format nil
|
||||||
"b/~A: \"~A\" closed by ~A - https://b.tvl.fyi/issues/~A"
|
"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")
|
:channel (or (uiop:getenvp "ISSUECHANNEL")
|
||||||
"##tvl-dev")))
|
"##tvl-dev")))
|
||||||
(hunchentoot:redirect (format nil "/issues/~A" id)))
|
(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