← All posts tagged jabber.el

a13
Emacs gpg jabber.el Ну шо, поцоны, на приём работает:

(defun jabber-chat-print-encrypted (xml-data who mode)
"Decrypts and prints encrypted message"
(let ((foundp nil))
(dolist (x (jabber-xml-node-children xml-data))
(when (and (listp x) (eq (jabber-xml-node-name x) 'x)
(string= (jabber-xml-get-xmlns x) "jabber:x:encrypted"))
(setq foundp t)

(when (eql mode :insert)
(let* ((enc-b64-multi (car (split-string (caddr x) "\n=")))
(enc-b64 (replace-regexp-in-string "\n" "" enc-b64-multi))
(enc (base64-decode-string enc-b64))
(context (epg-make-context epa-protocol))
(dec (epg-decrypt-string context enc)))
(insert "\n"
(jabber-propertize
"encrypted message: " 'face 'jabber-chat-prompt-system)
(format "%s" (jabber-unhex dec)))))))
foundp))

Немного переусложнённо, но блин, спасибо XEP-ам

Чтобы постоянно не спрашивал пароли — gpg-agent в помощь
a13
Emacs gpg jabber.el Пока как-то так:
(add-to-list 'jabber-chat-printers 'jabber-chat-print-encrypted)
(defun jabber-chat-print-encrypted (xml-data who mode)
"Print encrypted part of the message "
(message "detect encrypted")
(let ((foundp nil))
(dolist (x (jabber-xml-node-children xml-data))
(when (and (listp x) (eq (jabber-xml-node-name x) 'x)
(string= (jabber-xml-get-xmlns x) "jabber:x:encrypted"))
(setq foundp t)

(when (eql mode :insert)
(let ((enc (caddr x)))
(insert "\n"
(jabber-propertize
"encrypted message: " 'face 'jabber-chat-prompt-system)
(format "%s" enc))))))
foundp))

осталось декриптануть
a13
jabber.ru jabber.el лажа какая-то, при подключении только к акку на jabber.ru пишет "Authentication succeeded", но контакты с сервера не загружает. Если потом поключиться к любому другому — выползают контакты из обоих ростеров.
Да, к другим серверам (gmail.com и jabber.se) подключается нормально.
a13
бред Emacs вещества jabber.el иногда хочется, чтобы jabber.el детектил названия языков программирования в тексте, и подсвечивал следующий параграф (или до упоминания следующего языка) соответствующим режимом
a13
Emacs juick.el jabber.el Выяснил, почему криво работала раскраска чатов с ванильным 0.8.0 — в нём всё еще старая версия jabber-truncate-top. Грязно пофиксил через ignore-errors (хотя имхо надо фиксить сам jabber.el на предмет увеличения версии в git).
Брать у меня на гитхабах.
a13
Emacs proxy juick.el jabber.el ЗА прокси жизнь есть:

./socat TCP4-LISTEN:31337,reuseaddr,fork PROXY:proxy.localnet:allports.jabber.ru:443,proxyport=8080

(setq (jabber-account-list (quote (("nick@jabber.ru/home" (:network-server . "localhost") (:port . 31337))))))

(setq url-proxy-services '(("no_proxy" . "local.com")
("http" . "proxy.localnet:8080")))

как-то так...
a13
juick.el jabber.el (setq outline-regexp "\[[ 0-9:\\-]+\]")

и включаем outline-minor-mode :)

теперь можно ходить по постам как по заголовкам, и, что самое главное — сворачивать-разворачивать

достаточно примитивно, но лучше чем ничего
a13
Emacs jabber.el хз, может такой функционал уже был, но я не нашёл:
короче, jabber-roster-ret-action-at-point (реакция на Enter) с числовым префиксом открывает чятик в другом окне (память о mcabber).

paste.lisp.org