X-Git-Url: https://git.distorted.org.uk/~mdw/profile/blobdiff_plain/75ea07de0b5322a886d80e3e38821a329762b3bc..61181450bc063b30e5d0208661d0b9f541119f4b:/dot/ercrc.el diff --git a/dot/ercrc.el b/dot/ercrc.el index 525368d..a84d63f 100644 --- a/dot/ercrc.el +++ b/dot/ercrc.el @@ -42,20 +42,49 @@ Evaluate MESSAGE-FORM and sent to BOT-NICK when connected to a server which matches SERVER-REGEXP.") +(defvar mdw-erc-ircop-alist nil + "*Alist of (SERVER-REGEXP ACCT PASSWD). +Login details for claiming server admin rights.") + (defun mdw-define-bot-greeting (server bot greeting) "Define a new bot greeting." - (push (list server bot greeting) mdw-erc-auto-greet-bots-alist)) + (setq mdw-erc-auto-greet-bots-alist + (cons (list server bot greeting) + (remove* server mdw-erc-auto-greet-bots-alist + :test #'string= :key #'car)))) +(defun mdw-add-ircop-credentials (server acct passwd) + "Define a new set of `ircop' credentials." + (setq mdw-erc-ircop-alist + (cons (list server acct passwd) + (remove* server mdw-erc-ircop-alist + :test #'string= :key #'car))))) (load "~/.erc-auth.el") +(defun mdw-assoc-regexp (regexp alist) + "Return the association in ALIST whose car matches REGEXP." + (let ((answer nil)) + (dolist (l alist) + (when (string-match (car l) regexp) + (setq answer l))) + answer)) + (defun mdw-erc-auto-greet-bots (server nick) "Send greeting message to bots." - (dolist (l mdw-erc-auto-greet-bots-alist) - (when (string-match (car l) server) - (let ((bot (cadr l)) - (message (caddr l))) + (let ((a (mdw-assoc-regexp server mdw-erc-auto-greet-bots-alist))) + (when a + (let ((bot (cadr a)) + (message (caddr a))) (erc-server-send (concat "PRIVMSG " bot " :" message)))))) (add-hook 'erc-after-connect 'mdw-erc-auto-greet-bots) (defun erc-cmd-GREET () "Send greeting messages, according to `mdw-erc-auto-greet-bots-alist'." (mdw-erc-auto-greet-bots erc-session-server (erc-current-nick))) + +(defun erc-cmd-IRCOP () + "Claim `ircop' privileges." + (let ((a (mdw-assoc-regexp erc-session-server mdw-erc-ircop-alist))) + (when a + (let ((acct (cadr a)) + (passwd (caddr a))) + (erc-server-send (concat "OPER " acct " " passwd))))))