Commit | Line | Data |
---|---|---|
54896c4f MW |
1 | ;;; -*-emacs-lisp-*- |
2 | ;;; | |
3 | ;;; ERC configuration | |
4 | ||
54896c4f MW |
5 | (setq erc-nick "mdw" |
6 | erc-user-full-name "Mark Wooding") | |
7 | ||
96f2d8b3 MW |
8 | (if (not (memq 'truncate erc-modules)) |
9 | (setq erc-modules (cons 'truncate erc-modules))) | |
10 | ||
db8b2f3c MW |
11 | (setq erc-fill-column 76 |
12 | erc-timestamp-right-column 68 | |
96f2d8b3 MW |
13 | erc-fill-prefix " " |
14 | erc-max-buffer-size (* 60 3000)) | |
54896c4f MW |
15 | |
16 | (load "~/.erc-local.el") | |
17 | ||
18 | (setq erc-track-exclude-types '("NICK" "JOIN" "PART")) | |
19 | ||
20 | (setq erc-auto-query 'buffer) | |
21 | ||
c655b794 MW |
22 | (defun mdw-erc-turn-off-truncate-lines () |
23 | (setq truncate-lines nil | |
24 | truncate-partial-with-windows nil | |
25 | word-wrap t | |
d9be013a | 26 | wrap-prefix (concat (propertize " " 'face 'erc-prompt-face) |
c655b794 MW |
27 | " "))) |
28 | (add-hook 'erc-mode-hook 'mdw-erc-turn-off-truncate-lines) | |
29 | ||
54896c4f MW |
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") | |
9781db34 | 36 | ("chiark.greenend.org.uk" "#chiark") |
75ea07de MW |
37 | ("irc.distorted.org.uk" "#distorted" "#jukebox") |
38 | ("irc.hstg.corp.good.com" "#hstg"))) | |
54896c4f | 39 | |
10c4d64f | 40 | (defvar mdw-erc-auto-greet-bots-alist nil |
54896c4f MW |
41 | "*Alist of (SERVER-REGEXP BOT-NICK MESSAGE-FORM). |
42 | Evaluate MESSAGE-FORM and sent to BOT-NICK when connected to a server which | |
43 | matches SERVER-REGEXP.") | |
44 | ||
61181450 MW |
45 | (defvar mdw-erc-ircop-alist nil |
46 | "*Alist of (SERVER-REGEXP ACCT PASSWD). | |
47 | Login details for claiming server admin rights.") | |
48 | ||
10c4d64f MW |
49 | (defun mdw-define-bot-greeting (server bot greeting) |
50 | "Define a new bot greeting." | |
97103d53 MW |
51 | (setq mdw-erc-auto-greet-bots-alist |
52 | (cons (list server bot greeting) | |
53 | (remove* server mdw-erc-auto-greet-bots-alist | |
54 | :test #'string= :key #'car)))) | |
61181450 MW |
55 | (defun mdw-add-ircop-credentials (server acct passwd) |
56 | "Define a new set of `ircop' credentials." | |
57 | (setq mdw-erc-ircop-alist | |
58 | (cons (list server acct passwd) | |
59 | (remove* server mdw-erc-ircop-alist | |
60 | :test #'string= :key #'car))))) | |
10c4d64f MW |
61 | (load "~/.erc-auth.el") |
62 | ||
1cf7ff22 MW |
63 | (defun mdw-assoc-regexp (regexp alist) |
64 | "Return the association in ALIST whose car matches REGEXP." | |
65 | (let ((answer nil)) | |
66 | (dolist (l alist) | |
67 | (when (string-match (car l) regexp) | |
68 | (setq answer l))) | |
69 | answer)) | |
70 | ||
54896c4f MW |
71 | (defun mdw-erc-auto-greet-bots (server nick) |
72 | "Send greeting message to bots." | |
1cf7ff22 MW |
73 | (let ((a (mdw-assoc-regexp server mdw-erc-auto-greet-bots-alist))) |
74 | (when a | |
75 | (let ((bot (cadr a)) | |
76 | (message (caddr a))) | |
54896c4f MW |
77 | (erc-server-send (concat "PRIVMSG " bot " :" message)))))) |
78 | (add-hook 'erc-after-connect 'mdw-erc-auto-greet-bots) | |
6a08737d MW |
79 | |
80 | (defun erc-cmd-GREET () | |
81 | "Send greeting messages, according to `mdw-erc-auto-greet-bots-alist'." | |
82 | (mdw-erc-auto-greet-bots erc-session-server (erc-current-nick))) | |
61181450 MW |
83 | |
84 | (defun erc-cmd-IRCOP () | |
85 | "Claim `ircop' privileges." | |
86 | (let ((a (mdw-assoc-regexp erc-session-server mdw-erc-ircop-alist))) | |
87 | (when a | |
88 | (let ((acct (cadr a)) | |
89 | (passwd (caddr a))) | |
90 | (erc-server-send (concat "OPER " acct " " passwd)))))) |