blob: 69b10becc0e330d11df044cc71727e545359471d (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
|
;;; acdw-circe.el --- bespoke circe customizations -*- lexical-binding: t -*-
;;; Commentary:
;; Besoke Circe customizations.
;;; Code:
(require 'circe)
;;; Chat commands
(defun circe-command-SHORTEN (url)
"Shorten URL using `0x0-shorten-uri'."
(interactive "sURL to shorten: ")
(require '0x0)
;; TODO: enable /shorten URL comment syntax
(let ((short-url (0x0-shorten-uri (0x0--choose-server) url)))
(circe-command-SAY short-url)))
;;; Advices
(defun circe-part@kill-buffer (&rest _)
"Advice to kill the channel buffer after PART."
(let ((circe-channel-killed-confirmation nil))
(kill-buffer)))
(defun circe-quit@kill-buffer (&rest _)
"Advice to kill all buffers of a server after QUIT."
;; `circe-server-killed-confirmation' set to nil, and manually
;; deleting all chat buffers, pending Github issue #402
;; (https://github.com/emacs-circe/circe/issues/402)
(let ((circe-server-killed-confirmation nil))
(with-circe-server-buffer
(dolist (buf (circe-server-chat-buffers))
(let ((circe-channel-killed-confirmation nil))
(kill-buffer buf)))
(kill-buffer))))
(defun circe-gquit@kill-buffer (&rest _)
"Advice to kill all Circe related buffers after GQUIT."
;; `circe-server-killed-confirmation' set to nil, and manually
;; deleting all chat buffers, pending Github issue #402
;; (https://github.com/emacs-circe/circe/issues/402)
(let ((circe-server-killed-confirmation nil))
(dolist (buf (circe-server-buffers))
(with-current-buffer buf
(dolist (buf (circe-server-chat-buffers))
(let ((circe-channel-killed-confirmation nil))
(kill-buffer buf))
(cancel-timer 'irc-send--queue))
(message "%s: %s" buf circe-server-killed-confirmation)
(kill-buffer)))))
(provide 'acdw-circe)
;;; acdw-circe.el ends here
|