diff options
| author | LLLL Colonq <llll@colonq> | 2025-01-31 22:53:45 -0500 |
|---|---|---|
| committer | LLLL Colonq <llll@colonq> | 2025-01-31 22:53:45 -0500 |
| commit | b7e63b11a0f34fb465c11736d91233b3c49028a5 (patch) | |
| tree | fc5ce99516cbed6d41b4293419222a1e277ef0cb /src/gizmo/wasp-bannerads.el | |
| parent | d293e0a48427a224e4d3c4c4099b604d59ccabcf (diff) | |
big guy
Diffstat (limited to 'src/gizmo/wasp-bannerads.el')
| -rw-r--r-- | src/gizmo/wasp-bannerads.el | 51 |
1 files changed, 51 insertions, 0 deletions
diff --git a/src/gizmo/wasp-bannerads.el b/src/gizmo/wasp-bannerads.el new file mode 100644 index 00000000..2586600e --- /dev/null +++ b/src/gizmo/wasp-bannerads.el @@ -0,0 +1,51 @@ +;;; wasp-bannerads --- Advertising and merchandising for elite finance -*- lexical-binding: t; -*- +;;; Commentary: +;;; Code: + +(require 'dash) +(require 's) +(require 'f) +(require 'ht) +(require 'wasp-utils) +(require 'wasp-chat) + +(defcustom w/banner-ad-buffer "*wasp-banner-ad*" + "Name of buffer used to display banner ad." + :type '(string) + :group 'wasp) + +(define-derived-mode w/banner-ad-mode special-mode "banner ad" + "Major mode for displaying banner ads." + :group 'w + (setq-local cursor-type nil)) + +(defun w/get-banner-ad-buffer () + "Return the banner ad buffer." + (unless (get-buffer w/banner-ad-buffer) + (with-current-buffer (get-buffer-create w/banner-ad-buffer) + (w/banner-ad-mode))) + (get-buffer w/banner-ad-buffer)) + +(defun w/render-banner-ad () + "Render the banner ad buffer." + (with-current-buffer (w/get-banner-ad-buffer) + (setq-local cursor-type nil) + (let* ((inhibit-read-only t)) + (erase-buffer) + (let* ((paths (f-files (w/asset "bannerads"))) + (path (w/pick-random paths))) + (w/write (propertize "bannerad" 'display (create-image path nil nil :max-width 555 :max-height 175))))))) + +(defvar w/banner-ad-timer nil) +(defun w/run-banner-ad-timer () + "Run the banner ad timer." + (when w/banner-ad-timer + (cancel-timer w/banner-ad-timer)) + (w/render-banner-ad) + (setq + w/banner-ad-timer + (run-with-timer 60 nil #'w/run-banner-ad-timer))) +(w/run-banner-ad-timer) + +(provide 'wasp-bannerads) +;;; wasp-bannerads.el ends here |
