summaryrefslogtreecommitdiff
path: root/src/gizmo/wasp-alert-message.el
diff options
context:
space:
mode:
authorLLLL Colonq <llll@colonq>2025-01-03 14:41:11 -0500
committerLLLL Colonq <llll@colonq>2025-01-03 14:41:11 -0500
commit83f9a7b14bfb2fc90044d2809485b1c0a39cc841 (patch)
tree01472f7164fa1e3e5c9eae0570d71ff1b52ce751 /src/gizmo/wasp-alert-message.el
parent6628a49b953842a3c358bdf3f5e45284480db0c3 (diff)
Update
Diffstat (limited to 'src/gizmo/wasp-alert-message.el')
-rw-r--r--src/gizmo/wasp-alert-message.el57
1 files changed, 57 insertions, 0 deletions
diff --git a/src/gizmo/wasp-alert-message.el b/src/gizmo/wasp-alert-message.el
new file mode 100644
index 00000000..fcd8f6b3
--- /dev/null
+++ b/src/gizmo/wasp-alert-message.el
@@ -0,0 +1,57 @@
+;;; wasp-alert-message --- Advertising message -*- lexical-binding: t; -*-
+;;; Commentary:
+;;; Code:
+
+(require 'dash)
+(require 's)
+(require 'f)
+(require 'ht)
+(require 'wasp-utils)
+(require 'wasp-chat)
+
+(defconst
+ w/alert-message-phrases
+ (list
+ "hi :3"
+ "Chat seems active. Considerrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrr"
+ "Witscord The Game 2025"
+ ))
+
+(defcustom w/alert-message-buffer "*wasp-alert-message*"
+ "Name of buffer used to display alert message."
+ :type '(string)
+ :group 'wasp)
+
+(define-derived-mode w/alert-message-mode special-mode "ALERT ALERT ALERT"
+ "Major mode for displaying alert message."
+ :group 'w
+ (setq-local cursor-type nil))
+
+(defun w/get-alert-message-buffer ()
+ "Return the alert message buffer."
+ (unless (get-buffer w/alert-message-buffer)
+ (with-current-buffer (get-buffer-create w/alert-message-buffer)
+ (w/alert-message-mode)))
+ (get-buffer w/alert-message-buffer))
+
+(defun w/render-alert-message ()
+ "Render the heartrate buffer."
+ (with-current-buffer (w/get-alert-message-buffer)
+ (setq-local cursor-type nil)
+ (let* ((inhibit-read-only t))
+ (erase-buffer)
+ (w/write (w/pick-random w/alert-message-phrases)))))
+
+(defvar w/alert-message-timer nil)
+(defun w/run-alert-message-timer ()
+ "Run the alert message timer."
+ (when w/alert-message-timer
+ (cancel-timer w/alert-message-timer))
+ (w/render-alert-message)
+ (setq
+ w/alert-message-timer
+ (run-with-timer 10 nil #'w/run-alert-message-timer)))
+(w/run-alert-message-timer)
+
+(provide 'wasp-alert-message)
+;;; wasp-alert-message.el ends here