summary refs log tree commit diff stats
path: root/lisp
diff options
context:
space:
mode:
authorCase Duckworth2021-09-28 16:20:55 -0500
committerCase Duckworth2021-09-28 16:20:55 -0500
commitd19fb84fbbdc1363a52cc3bd3723e4dda75812f3 (patch)
tree23a4f95fe04363fac5ac95d28c7f7e315a5fa3da /lisp
parentMerge branch 'main' of tildegit.org:acdw/emacs (diff)
downloademacs-d19fb84fbbdc1363a52cc3bd3723e4dda75812f3.tar.gz
emacs-d19fb84fbbdc1363a52cc3bd3723e4dda75812f3.zip
Add acdw-circe.el
Diffstat (limited to 'lisp')
-rw-r--r--lisp/acdw-circe.el55
1 files changed, 55 insertions, 0 deletions
diff --git a/lisp/acdw-circe.el b/lisp/acdw-circe.el new file mode 100644 index 0000000..69b10be --- /dev/null +++ b/lisp/acdw-circe.el
@@ -0,0 +1,55 @@
1;;; acdw-circe.el --- bespoke circe customizations -*- lexical-binding: t -*-
2
3;;; Commentary:
4
5;; Besoke Circe customizations.
6
7;;; Code:
8
9(require 'circe)
10
11;;; Chat commands
12(defun circe-command-SHORTEN (url)
13 "Shorten URL using `0x0-shorten-uri'."
14 (interactive "sURL to shorten: ")
15 (require '0x0)
16 ;; TODO: enable /shorten URL comment syntax
17 (let ((short-url (0x0-shorten-uri (0x0--choose-server) url)))
18 (circe-command-SAY short-url)))
19
20;;; Advices
21
22(defun circe-part@kill-buffer (&rest _)
23 "Advice to kill the channel buffer after PART."
24 (let ((circe-channel-killed-confirmation nil))
25 (kill-buffer)))
26
27(defun circe-quit@kill-buffer (&rest _)
28 "Advice to kill all buffers of a server after QUIT."
29 ;; `circe-server-killed-confirmation' set to nil, and manually
30 ;; deleting all chat buffers, pending Github issue #402
31 ;; (https://github.com/emacs-circe/circe/issues/402)
32 (let ((circe-server-killed-confirmation nil))
33 (with-circe-server-buffer
34 (dolist (buf (circe-server-chat-buffers))
35 (let ((circe-channel-killed-confirmation nil))
36 (kill-buffer buf)))
37 (kill-buffer))))
38
39(defun circe-gquit@kill-buffer (&rest _)
40 "Advice to kill all Circe related buffers after GQUIT."
41 ;; `circe-server-killed-confirmation' set to nil, and manually
42 ;; deleting all chat buffers, pending Github issue #402
43 ;; (https://github.com/emacs-circe/circe/issues/402)
44 (let ((circe-server-killed-confirmation nil))
45 (dolist (buf (circe-server-buffers))
46 (with-current-buffer buf
47 (dolist (buf (circe-server-chat-buffers))
48 (let ((circe-channel-killed-confirmation nil))
49 (kill-buffer buf))
50 (cancel-timer 'irc-send--queue))
51 (message "%s: %s" buf circe-server-killed-confirmation)
52 (kill-buffer)))))
53
54(provide 'acdw-circe)
55;;; acdw-circe.el ends here