dot/ercrc.el: Rearrange bot greeting.
[profile] / dot / ercrc.el
1 ;;; -*-emacs-lisp-*-
2 ;;;
3 ;;; ERC configuration
4
5 (setq erc-nick "mdw"
6 erc-user-full-name "Mark Wooding")
7
8 (if (not (memq 'truncate erc-modules))
9 (setq erc-modules (cons 'truncate erc-modules)))
10
11 (setq erc-fill-column 76
12 erc-timestamp-right-column 68
13 erc-fill-prefix " "
14 erc-max-buffer-size (* 60 3000))
15
16 (load "~/.erc-local.el")
17
18 (setq erc-track-exclude-types '("NICK" "JOIN" "PART"))
19
20 (setq erc-auto-query 'buffer)
21
22 (defun mdw-erc-turn-off-truncate-lines ()
23 (setq truncate-lines nil
24 truncate-partial-with-windows nil
25 word-wrap t
26 wrap-prefix (concat (propertize " " 'face 'erc-prompt-face)
27 " ")))
28 (add-hook 'erc-mode-hook 'mdw-erc-turn-off-truncate-lines)
29
30 (setq erc-autojoin t
31 erc-autojoin-domain-only nil
32 erc-autojoin-channels-alist
33 '(("irc.ssdis.loc" "#devel" "#jukebox" "#nextgen")
34 ("cam.irc.devel.ncipher.com"
35 "#devel" "#jukebox" "#nextgen" "#sec-team")
36 ("chiark.greenend.org.uk" "#chiark")
37 ("irc.distorted.org.uk" "#distorted" "#jukebox")))
38
39 (defvar mdw-erc-auto-greet-bots-alist nil
40 "*Alist of (SERVER-REGEXP BOT-NICK MESSAGE-FORM).
41 Evaluate MESSAGE-FORM and sent to BOT-NICK when connected to a server which
42 matches SERVER-REGEXP.")
43
44 (defun mdw-define-bot-greeting (server bot greeting)
45 "Define a new bot greeting."
46 (push (list server bot greeting) mdw-erc-auto-greet-bots-alist))
47 (load "~/.erc-auth.el")
48
49 (defun mdw-erc-auto-greet-bots (server nick)
50 "Send greeting message to bots."
51 (dolist (l mdw-erc-auto-greet-bots-alist)
52 (when (string-match (car l) server)
53 (let ((bot (cadr l))
54 (message (caddr l)))
55 (erc-server-send (concat "PRIVMSG " bot " :" message))))))
56 (add-hook 'erc-after-connect 'mdw-erc-auto-greet-bots)
57
58 (defun erc-cmd-GREET ()
59 "Send greeting messages, according to `mdw-erc-auto-greet-bots-alist'."
60 (mdw-erc-auto-greet-bots erc-session-server (erc-current-nick)))