bitlbee and rcirc
So, I switched from irssi to rcirc so that I could do all of my business in one window and not have to switch to the terminal to chat.
It worked fine, except that bitlbee sends a ctcp type of "TYPING" to indicate remote activity, and these messages were showing up on my screen like 13:58 *** mckay_mars CTCP TYPING 1
, which isn't very nice.
So I wrote a little code to fix that, and put it in my .emacs:
(defun rcirc-handler-ctcp-TYPING (process target sender value) (cond ;; value = 0 means they're done...which you already know, since their message was sent to you. ((string= value "1") (rcirc-print process sender "" target "is typing...")) ((string= value "2") (rcirc-print process sender "" target "stalled")))) ;; By default, the CTCP is echoed to the screen, which we don't want to see. ;; This adds "TYPING" to the list of types NOT echoed back. (defun rcirc-handler-CTCP (process target sender text) (if (string-match "^\\([^ ]+\\) *\\(.*\\)$" text) (let* ((request (upcase (match-string 1 text))) (args (match-string 2 text)) (handler (intern-soft (concat "rcirc-handler-ctcp-" request)))) (if (not (fboundp handler)) (rcirc-print process sender "ERROR" target (format "%s sent unsupported ctcp: %s" sender text) t) (funcall handler process target sender args) (unless (or (string= request "ACTION") (string= request "KEEPALIVE") (string= request "TYPING")) (rcirc-print process sender "CTCP" target (format "%s" text) t))))))
Hopefully that can be of some use to someone.