Сколько не гуглил по такой фиче jabber.el как блеклист - ничего не нагуглил. Нашкрябал сам. Если кто-то поможет довести до ума или просто будет использовать - будет круто. Суть такова, в конфиг ~/.emacs пишем:
(defvar *jabber-blacklist* nil)
(defun jabber-reload-blacklist ()
"Reload blacklist from file"
(interactive)
(load "~/.emacs-jabber-blacklist"))
(defun jabber-check-blacklist (&optional from)
"Is JID blacklisted?"
(interactive)
(when (not from)
(setf from (read-string "JID: " nil nil from)))
(if (member* from *jabber-blacklist* :test 'string=)
t nil))
(defun jabber-process-chat (jc xml-data)
"If XML-DATA is a one-to-one chat message, handle it as such."
(when (not (jabber-muc-message-p xml-data))
(let ((from (jabber-xml-get-attribute xml-data 'from))
(error-p (jabber-xml-get-children xml-data 'error))
(body-text (car (jabber-xml-node-children
(car (jabber-xml-get-children
xml-data 'body))))))
(if (not (jabber-check-blacklist from))
(progn
(when (or error-p
(run-hook-with-args-until-success 'jabber-chat-printers xml-data :foreign :printp))
(with-current-buffer (if (jabber-muc-sender-p from)
(jabber-muc-private-create-buffer
jc
(jabber-jid-user from)
(jabber-jid-resource from))
(jabber-chat-create-buffer jc from))
(let ((node
(ewoc-enter-last jabber-chat-ewoc (list (if error-p :error :foreign) xml-data :time (current-time)))))
(jabber-maybe-print-rare-time node))
(dolist (hook '(jabber-message-hooks jabber-alert-message-hooks))
(run-hook-with-args hook
from (current-buffer) body-text
(funcall jabber-alert-message-function
from (current-buffer) body-text))))))
(message "Message from %s blacklisted" from)))))
Файл ~/.emacs-jabber-blacklist выглядит так:
(setf *jabber-blacklist* (list
"jid1"
"jid2"
"jid3"
...
"jidN"
))
Любые советы принимаю с благодарностью.