summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/gizmo/wasp-alert-message.el57
-rw-r--r--src/gizmo/wasp-aoc.el13
-rw-r--r--src/gizmo/wasp-biblicality.el2
-rw-r--r--src/gizmo/wasp-cyclone.el4
-rw-r--r--src/gizmo/wasp-fake-chatters.el2
-rw-r--r--src/gizmo/wasp-friend.el8
-rw-r--r--src/gizmo/wasp-heartrate.el2
-rw-r--r--src/gizmo/wasp-pronunciation.el1
-rw-r--r--src/wasp-chat.el9
-rw-r--r--src/wasp-twitch-chat-commands.el1
-rw-r--r--src/wasp-twitch-redeems.el30
-rw-r--r--src/wasp-twitch.el9
-rw-r--r--src/wasp-user-whitelist.el3
-rw-r--r--src/wasp-voice-commands.el2
14 files changed, 116 insertions, 27 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
diff --git a/src/gizmo/wasp-aoc.el b/src/gizmo/wasp-aoc.el
index 5fa58582..57b16c32 100644
--- a/src/gizmo/wasp-aoc.el
+++ b/src/gizmo/wasp-aoc.el
@@ -10,7 +10,7 @@
(require 'request)
(require 'wasp-sensitive)
-(defcustom w/aoc-leaderboard-url "https://adventofcode.com/2023/leaderboard/private/view/3307583.json"
+(defcustom w/aoc-leaderboard-url "https://adventofcode.com/2024/leaderboard/private/view/3307583.json"
"URL for Advent of Code API."
:type '(string)
:group 'wasp)
@@ -28,11 +28,18 @@
("fn_lumi" . "lumi")
("leadengin" . "leaden")
("vasher_1025" . "vash3r")
- ("andrewdtr" . "drawthatredstone")))
+ ("andrewdtr" . "drawthatredstone")
+ ("badcop_" . "cgsdev0")
+ ("asrael_io" . "asrael")
+ ("colinahscopy_" . "@colinahscopy")
+ ("ctrl_o" . "control-o")
+ ("whimsicallymade" . "aecepoglu")
+ ("chromosundrift" . "christo")
+ ))
(defun w/aoc-max-stars ()
"Return the maximum Advent of Code stars for today."
- (* 2 (string-to-number (format-time-string "%d" (current-time)))))
+ (min 50 (* 2 (string-to-number (format-time-string "%d" (current-time))))))
(defun w/aoc-lookup-stars (user)
"Retrieve the Advent of Code stars for USER."
diff --git a/src/gizmo/wasp-biblicality.el b/src/gizmo/wasp-biblicality.el
index b7c46ed8..ce49a5b4 100644
--- a/src/gizmo/wasp-biblicality.el
+++ b/src/gizmo/wasp-biblicality.el
@@ -21,7 +21,7 @@
(defun w/populate-bible-table ()
"Populate `w/bible-table' from the Bible text file."
(unless w/bible-table
- (let* ((bible-string (s-downcase (w/slurp (w/asset "bible.txt"))))
+ (let* ((bible-string (s-downcase (w/slurp (w/asset "medical.txt"))))
(bible-string-nosyms (replace-regexp-in-string "[^[:alpha:]]" " " bible-string))
(bible-words (s-split-words bible-string-nosyms))
(ret (ht-create)))
diff --git a/src/gizmo/wasp-cyclone.el b/src/gizmo/wasp-cyclone.el
index d7a0d02d..7359485b 100644
--- a/src/gizmo/wasp-cyclone.el
+++ b/src/gizmo/wasp-cyclone.el
@@ -6,12 +6,14 @@
(require 'wasp-friend)
(require 'wasp-heartrate)
(require 'wasp-chatsummary)
+(require 'wasp-alert-message)
(defconst w/gizmo-buffer-names
(list
w/friend-buffer
w/heartrate-buffer
- w/chatsummary-buffer))
+ w/chatsummary-buffer
+ w/alert-message-buffer))
(defvar w/gizmo-windows (list))
diff --git a/src/gizmo/wasp-fake-chatters.el b/src/gizmo/wasp-fake-chatters.el
index a6506c06..5eb42379 100644
--- a/src/gizmo/wasp-fake-chatters.el
+++ b/src/gizmo/wasp-fake-chatters.el
@@ -261,7 +261,7 @@
w/dna-pralkarz
"pralkarz"
"#FF69B4"
- "Respond to the message given as if you are the Twitch chat user pralkarz. You tend to be well spoken. You often use words like \"skibidi\" and \"gyatt\" in their proper contexts. Your response should be short, no more than one sentence. You always use proper capitalization and punctuation."))
+ "Respond to the message given as if you are the Twitch chat user pralkarz. You always use proper grammar and punctuation. You are unusually obsessed with washing machines, and often draw allegories to them, even when it seemingly doesn't make sense. Your feet sometimes smell like vinegar, and you find it hilarious. Your response should be short, no more than one sentence."))
(w/make-fake-chatter
:profile
(w/dna-to-fake-chatter-profile
diff --git a/src/gizmo/wasp-friend.el b/src/gizmo/wasp-friend.el
index cff2689f..a476facc 100644
--- a/src/gizmo/wasp-friend.el
+++ b/src/gizmo/wasp-friend.el
@@ -336,7 +336,7 @@ If K is specified, call it after the response."
(defun w/friend-callout-holiday ()
"Call to respond to the current holiday."
- (w/friend-respond "It's currently the LCOLONQ shareholders meeting and you're an executive! Say something about it please!"))
+ (w/friend-respond "It's New Year's Eve! Say something about it please!"))
(defun w/friend-callout-hexamedia ()
"Call to respond to a random recent chatter's Hexamedia card collection."
@@ -463,7 +463,7 @@ If K is specified, call it after the response."
(4 (w/friend-callout-shindaggers))
(5 (w/friend-callout-copfish))
(6 (w/friend-callout-resolution))
- (29 (w/friend-callout-holiday))
+ (9 (w/friend-callout-holiday))
(t (w/friend-set-state 'jumping))))
(defun w/update-friend ()
@@ -523,8 +523,8 @@ If K is specified, call it after the response."
;; "%a\
;; /\\
;; /\\/\\
-;; / \\
-;; / \\
+;; / :3 \\
+;; /santa!\\
;; ~~~~~~~~~~
;; ~~~~~~~~~~
;; / %l %r \\
diff --git a/src/gizmo/wasp-heartrate.el b/src/gizmo/wasp-heartrate.el
index 62994680..36fe5b38 100644
--- a/src/gizmo/wasp-heartrate.el
+++ b/src/gizmo/wasp-heartrate.el
@@ -56,7 +56,7 @@
(setq-local cursor-type nil)
(let* ((inhibit-read-only t))
(erase-buffer)
- (w/write-line (format "%3d bpm" (w/get-heartrate)) 'w/heartrate-big)
+ (w/write-line (format "%3d °C" (w/get-heartrate)) 'w/heartrate-big)
(w/write (format "arbitrary counter: %s times" w/chat-bpm-count) 'w/heartrate-small))))
(defvar w/heartrate-timer nil)
diff --git a/src/gizmo/wasp-pronunciation.el b/src/gizmo/wasp-pronunciation.el
index 8dae4e4d..746bd882 100644
--- a/src/gizmo/wasp-pronunciation.el
+++ b/src/gizmo/wasp-pronunciation.el
@@ -27,6 +27,7 @@
"Elkhunk"
"late late late late show with llll colonq"
"move right and exit"
+ "Al Capone"
))
(defconst w/pronunciation-part1 ;; the LLLL
diff --git a/src/wasp-chat.el b/src/wasp-chat.el
index a3263e00..6aedbf10 100644
--- a/src/wasp-chat.el
+++ b/src/wasp-chat.el
@@ -19,6 +19,8 @@
(defvar w/chat-icant-count 0)
(defvar w/chat-bpm-count 0)
(defvar w/chat-apology-count 0)
+(defvar w/chat-john-count 0)
+(defvar w/chat-ostensibly-count 0)
(defvar w/chat-header-line "")
@@ -31,7 +33,10 @@
" | ICANT: " (format "%s" w/chat-icant-count)
" | +2: " (format "%s" w/chat-plus2-count)
" | -2: " (format "%s" w/chat-minus2-count)
- " | apology: " (format "%s" w/chat-apology-count))))
+ " | apology: " (format "%s" w/chat-apology-count)
+ " | John Counter: " (format "%s" w/chat-john-count)
+ " | ostensibly,: " (format "%s" w/chat-ostensibly-count)
+ )))
(define-derived-mode w/chat-overlay-mode special-mode "ClonkHead Stats"
"Major mode for displaying chatter statistics."
@@ -291,7 +296,7 @@ Optionally, return the buffer NM in chat mode."
(insert (s-replace-all w/chat-substitutions (w/. text msg)))
(when (w/. biblicality msg)
(let* ((wwidth (- (window-total-width (get-buffer-window (current-buffer))) 3))
- (bible-button-text (format "[biblicality %.2f]" (w/. biblicality msg)))
+ (bible-button-text (format "[medicality %.2f]" (w/. biblicality msg)))
(msgwidth (line-beginning-position))
(lines (+ 1 (/ msgwidth wwidth))))
(insert
diff --git a/src/wasp-twitch-chat-commands.el b/src/wasp-twitch-chat-commands.el
index f55355fa..793ab374 100644
--- a/src/wasp-twitch-chat-commands.el
+++ b/src/wasp-twitch-chat-commands.el
@@ -32,6 +32,7 @@
(format "@%s that is a roguelike :3" user)
(format "@%s that's not a roguelike" user)))))
(cons "arch btw" (lambda (_ _) (w/twitch-say "I use nix btw")))
+ (cons "!advent" (lambda (_ _) (w/twitch-say "Join our private leaderboard: 3307583-b61f237c")))
(cons "!discord" (lambda (_ _) (w/twitch-say "https://discord.gg/f4JTbgN7St")))
(cons "discord IRC" (lambda (_ _) (w/twitch-say "https://discord.gg/f4JTbgN7St")))
(cons "discord irc" (lambda (_ _) (w/twitch-say "https://discord.gg/f4JTbgN7St")))
diff --git a/src/wasp-twitch-redeems.el b/src/wasp-twitch-redeems.el
index d3ab13fa..c70c0316 100644
--- a/src/wasp-twitch-redeems.el
+++ b/src/wasp-twitch-redeems.el
@@ -19,6 +19,8 @@
(require 'muzak)
(require 'muzak-wasp)
+(defvar w/twitch-redeem-sound-last 0)
+
(setf
w/twitch-redeems
(list
@@ -210,12 +212,15 @@
(lambda (user _)
(w/write-chat-event (format "%s changed the theme: rosa" user))
(w/change-theme 'ef-rosa)))
- ;; (list
- ;; "gamer" 500
- ;; (lambda (user _)
- ;; (w/write-chat-event (s-concat user "'s Gamer Sacrifice summoned an entity"))
- ;; (soundboard//play-clip "videogame.ogg")
- ;; (w/obs-activate-toggle 'thug-life)))
+ (list
+ "gamer" 500
+ (lambda (user _)
+ (let ((cur (float-time)))
+ (when (> (- cur w/twitch-redeem-sound-last) 2)
+ (w/write-chat-event (s-concat user "'s Gamer Sacrifice summoned an entity"))
+ (soundboard//play-clip "videogame.ogg")
+ (w/obs-activate-toggle 'thug-life)
+ (setq w/twitch-redeem-sound-last cur)))))
(list
"arrow" 500
(lambda (user msg)
@@ -226,11 +231,14 @@
(lambda (user _)
(w/write-chat-event (format "%s does not condone any form of copyright infringement whatsoever." user))
(w/obs-activate-toggle 'activate-nixos)))
- ;; (list
- ;; "super idol" 500
- ;; (lambda (_ _)
- ;; (w/write-chat-event "SuperIdoldexiaorongdoumeinidetianbayuezhengwudeyangguangdoumeiniyaoyanreai105Cdenididiqingchundezhen")
- ;; (soundboard//play-clip "superidololdshortstyle.ogg")))
+ (list
+ "super idol" 500
+ (lambda (_ _)
+ (let ((cur (float-time)))
+ (when (> (- cur w/twitch-redeem-sound-last) 2)
+ (w/write-chat-event "SuperIdoldexiaorongdoumeinidetianbayuezhengwudeyangguangdoumeiniyaoyanreai105Cdenididiqingchundezhen")
+ (soundboard//play-clip "superidololdshortstyle.ogg")
+ (setq w/twitch-redeem-sound-last cur)))))
(list
"hex" 500
(lambda (user inp)
diff --git a/src/wasp-twitch.el b/src/wasp-twitch.el
index a9d3084b..419d8fc9 100644
--- a/src/wasp-twitch.el
+++ b/src/wasp-twitch.el
@@ -485,12 +485,15 @@ CALLBACK will be passed the winner when the poll concludes."
(defun w/twitch-badges-sigil (badges)
"Return the sigil character BADGES for the current user."
- (let ((equity (alist-get :equity w/user-current))
- (name (s-downcase w/user-current-name)))
+ (let* ((equity (alist-get :equity w/user-current))
+ (name (s-downcase w/user-current-name))
+ (max-stars (w/aoc-max-stars))
+ (aoc-stars (w/aoc-lookup-stars name)))
(apply
#'s-concat
(-non-nil
(list
+ (when (and aoc-stars (>= aoc-stars max-stars)) "🎄")
(when (-contains? badges "broadcaster/1") "(it me)")
(when (-contains? badges "moderator/1") "⚔")
(when (-contains? badges "artist-badge/1") "🖌️")
@@ -514,7 +517,7 @@ CALLBACK will be passed the winner when the poll concludes."
((s-equals? name "tyumici") "🤌")
;; clone is lord ((s-equals? name "liquidcake1") "")
;; ((s-equals? name "loufbread_") "")
- ;; ((s-equals? name "yellowberryhn") "")
+ ((s-equals? name "yellowberryhn") "🪴")
;; ((s-equals? name "maradyne_") "")
;; ((s-equals? name "sampie159") "")
;; ((s-equals? name "zamielpayne") "")
diff --git a/src/wasp-user-whitelist.el b/src/wasp-user-whitelist.el
index c6e5a617..62be1997 100644
--- a/src/wasp-user-whitelist.el
+++ b/src/wasp-user-whitelist.el
@@ -218,6 +218,9 @@
"siersciuch_albinos"
"thelordzeeee"
"trueround"
+ "quantumbohm"
+ "sodacoma"
+ "hibakod"
)))
(setq
diff --git a/src/wasp-voice-commands.el b/src/wasp-voice-commands.el
index 1af2bd7e..255f8cb8 100644
--- a/src/wasp-voice-commands.el
+++ b/src/wasp-voice-commands.el
@@ -16,6 +16,8 @@
(cons "i can't" (lambda () (cl-incf w/chat-icant-count) (w/chat-update-header-line)))
(cons "sorry" (lambda () (cl-incf w/chat-apology-count) (w/chat-update-header-line)))
(cons "apologies" (lambda () (cl-incf w/chat-apology-count) (w/chat-update-header-line)))
+ (cons "john" (lambda () (cl-incf w/chat-john-count) (w/chat-update-header-line)))
+ (cons "ostensibly" (lambda () (cl-incf w/chat-ostensibly-count) (w/chat-update-header-line)))
(cons "lua"
(lambda ()
(progn (w/obs-toggle-brazil)