diff options
| author | LLLL Colonq <llll@colonq> | 2025-10-05 19:54:38 -0400 |
|---|---|---|
| committer | LLLL Colonq <llll@colonq> | 2025-10-05 19:54:38 -0400 |
| commit | 3d31c488fb06e9937964041f4d83d0cb1c9699ab (patch) | |
| tree | e20edbd81d98719e77ef2eb08c9f369605bfe6c6 /src/wasp-event-handlers-binary.el | |
| parent | 510608fdbc43947391d82c703370814aa57a454e (diff) | |
Move more events to binary bus
Diffstat (limited to 'src/wasp-event-handlers-binary.el')
| -rw-r--r-- | src/wasp-event-handlers-binary.el | 72 |
1 files changed, 69 insertions, 3 deletions
diff --git a/src/wasp-event-handlers-binary.el b/src/wasp-event-handlers-binary.el index 09ea3175..b7df863d 100644 --- a/src/wasp-event-handlers-binary.el +++ b/src/wasp-event-handlers-binary.el @@ -6,6 +6,8 @@ (require 's) (require 'wasp-utils) (require 'wasp-twitch) +(require 'wasp-friend) +(require 'wasp-model) (require 'wasp-bus-binary) (setf @@ -13,18 +15,82 @@ (list (cons "monitor twitch chat incoming" (lambda (d) + (message "incoming: %s" d) (-let [(user stags msg) (s-split-up-to " " (w/utf8 d) 2)] (w/twitch-handle-incoming-chat user (--map (s-split "\t" it) (s-split "\n" stags)) msg)))) + (cons "monitor twitch redeem incoming" + (lambda (d) + (-let [(user redeem input) (s-split-up-to " " (w/utf8 d) 2)] + (w/twitch-handle-redeem-helper user redeem input)))) (cons "frontend redeem incoming" (lambda (d) (-let [(user redeem input) (s-split-up-to "\t" (w/utf8 d) 2)] (w/twitch-handle-redeem-helper user redeem input 1000)))) - ;; (cons "test event 2" - ;; (lambda (d) - ;; (message "incoming: %s" d))) + (cons "monitor twitch raid" + (lambda (d) + (let ((user (w/utf8 d))) + (soundboard//play-clip "rampage.mp3") + (w/write-chat-event (format "%s just raided!" user)) + (w/friend-respond (format "%s just came to visit" user)) + (run-with-timer + 15 nil + (lambda () + (w/twitch-get-user-recent-clips + user + (lambda (clips) + (w/model-region-word "hair" (s-concat user "_")) + (w/model-region-word "eyes" "WELCOME") + (if clips + (w/model-region-video "hair" (car clips)) + (w/model-region-user-avatar "hair" user))))))))) + (cons "monitor twitch follow" + (lambda (d) + (let ((user (w/utf8 d))) + (soundboard//play-clip "firstblood.mp3") + (w/model-region-word "skin" (format "welcome_%s_" user)) + (w/friend-respond (format "%s just followed the stream" user)) + (w/write-chat-event (format "New follower: %s" user))))) + (cons "monitor twitch subscribe" + (lambda (d) + (let ((user (w/utf8 d))) + (w/thank-sub user) + (w/model-region-word "skin" (format "thanks_%s_" user)) + (w/friend-respond (format "%s just subscribed to the stream" user)) + (w/write-chat-event (format "New subscriber: %s" user))))) + (cons "monitor twitch gift" + (lambda (d) + (-let [(user subs) (s-split-up-to " " (w/utf8 d) 2)] + (unless (s-equals? user "lcolonq") + (w/model-region-word "skin" (format "thanks_%s_" user)) + (w/friend-respond (format "%s just gifted subscriptions" user)) + (w/write-chat-event (format "%s gifted %d subs" user subs)) + (soundboard//play-monsterkill subs))))) + (cons "monitor twitch poll begin" + (lambda (_) + (w/write-chat-event "Poll started") + (w/friend-respond "The chatters are doing a poll"))) + (cons "monitor twitch poll end" + (lambda (d) + (let* + ( (sp (s-split " " (w/utf8 d))) + (choices (--map (s-split "," it) (cdr sp))) + (winner (car (-max-by (-on #'> #'cadr) choices)))) + (w/write-chat-event (format "Poll finished, winner is: %s" winner)) + (when w/twitch-current-poll-callback + (funcall w/twitch-current-poll-callback winner)) + (setq w/twitch-current-poll-callback nil)))) + (cons "monitor twitch prediction begin" + (lambda (d) + (w/write-chat-event "Gamble started") + (w/friend-respond "The chatters are gambling") + (setq w/twitch-current-prediction-ids (w/utf8 d)))) + (cons "monitor twitch prediction end" + (lambda (_) + (w/write-chat-event "Gamble finished") + (setq w/twitch-current-prediction-ids nil))) )) (provide 'wasp-event-handlers-binary) |
