From 8f9509d726d0d86aae9ab72a7d49f5b9a29d18c4 Mon Sep 17 00:00:00 2001 From: plugd Date: Mon, 20 May 2024 18:17:00 +0200 Subject: [PATCH] Added ctcp version commands. --- murk.el | 29 +++++++++++++++++++++++++++++ 1 file changed, 29 insertions(+) diff --git a/murk.el b/murk.el index 64bc81d..1014c1e 100644 --- a/murk.el +++ b/murk.el @@ -53,6 +53,7 @@ '(("debug" "localhost" 6697) ("libera" "irc.libera.chat" 6697) ("tilde" "tilde.chat" 6697) + ("sdf" "irc.sdf.org" 6697) ("freenode" "chat.freenode.net" 6697) ("mbr" "mbrserver.com" 6667 :notls)) "IRC networks." @@ -766,6 +767,19 @@ The head of this list is always the current context.") (if murk-show-joins (murk-display-notice nil nick " quit: " reason)))) + ("NOTICE" + (let ((nick (murk-msg-src msg)) + (channel (car (murk-msg-params msg))) + (text (cadr (murk-msg-params msg)))) + (pcase text + ((rx (: "\01VERSION " + (let version (* (not "\01"))) + "\01")) + (murk-display-notice (murk-get-context server) + "CTCP version reply from " nick ": " version)) + (_ + (murk-display-notice nil text))))) + ("PRIVMSG" (let* ((from (murk-msg-src msg)) (params (murk-msg-params msg)) @@ -821,6 +835,7 @@ The head of this list is always the current context.") ("USERS" "List nicks of users in current context." murk-command-users) ("MSG" "Send private message to user." murk-command-msg murk-nick-completions) ("ME" "Display action." murk-command-me) + ("VERSION" "Request version of another user's client via CTCP." murk-command-version murk-nick-completions) ("CLEAR" "Clear buffer text." murk-command-clear murk-context-completions) ("HELP" "Display help on client commands." murk-command-help murk-help-completions)) "Table of commands explicitly supported by murk.") @@ -978,6 +993,20 @@ The head of this list is always the current context.") (murk-display-notice nil "Usage: /me ")) (murk-display-notice nil "No current channel.")))) +(defun murk-command-version (params) + (let ((ctx (murk-current-context))) + (if ctx + (if params + (let ((server (murk-context-server ctx)) + (nick (car params))) + (murk-send-msg server + (lurk-msg nil nil "PRIVMSG" + (list nick "\01VERSION\01"))) + (murk-display-notice ctx "CTCP version request sent to " + nick " on " server)) + (murk-display-notice ctx "Usage: /version ")) + (murk-display-notice nil "No current channel.")))) + (defun murk-command-users (_params) (let ((ctx (murk-current-context))) (if (and ctx (not (murk-server-context-p ctx))) -- 2.20.1