summaryrefslogtreecommitdiff
path: root/src/gizmo/wasp-scripted.el
diff options
context:
space:
mode:
Diffstat (limited to 'src/gizmo/wasp-scripted.el')
-rw-r--r--src/gizmo/wasp-scripted.el311
1 files changed, 311 insertions, 0 deletions
diff --git a/src/gizmo/wasp-scripted.el b/src/gizmo/wasp-scripted.el
new file mode 100644
index 00000000..3ead364f
--- /dev/null
+++ b/src/gizmo/wasp-scripted.el
@@ -0,0 +1,311 @@
+;;; wasp-scripted --- Scripted episode -*- lexical-binding: t; -*-
+;;; Commentary:
+;;; Code:
+
+(require 'wasp-utils)
+(require 'wasp-twitch)
+
+(defconst w/scripted-chatters
+ '( ;; lurkers:
+ "UpsideDownNoodle"
+ "obtuse_racoon"
+ "helldev1338"
+ "wfwef325345"
+ "hyperx_1139"
+ "doubleweed23"
+ "silver_sanguine"
+ "BigBigFrogVT"
+ "fef_wef_wef"
+ "scenichighway2000"
+ "unbeatablePanda"
+ "retroFreak99"
+ "UMBERTO777"
+ "gfxfanX2"
+ "NUMBER_LOVE"
+ "hearthstoneVT"
+ "AkumaJuliusCh"
+ "derivedfunsum"
+ "acegamingtime2"
+ "Devious_Strength"
+ "seadogseadog"
+ "DevMAX123"
+ "queueinging"
+ "cannabis7man"
+ "Obscurantism"
+ "camelotCannot"
+ "RealManTwitch"
+ "ANIMAL2Ch"
+ "winner_dinner"
+ "NANDGATEGIRL"
+ "devil3"
+ "PitViperVT"
+ "terminaldog456"
+ "unwashedplate"
+ "chef_chef"
+ "ThePuppetmasterGaming"
+ "GothDragon"
+ "byholydog"
+ "CodingLord04"
+ "gemivemi"
+ "drascoTabasco"
+ "UNREALITY_FAN"
+ "dubiousdiskjockey"
+ "ubertuber"
+ "celerityVT"
+ "BabyYodaFan55"
+ "xXpyrexdestroyerXx"
+ "hellodogworld"
+ ;; scripted chatters:
+ "UltraTomato"
+ "lord35"
+ "SUPER_TROOPER"
+ "TheBeastlyNature"
+ "cameldromedary"
+ "Howdy_Kekw"
+ "Zuvius222"
+ "AnthonyRabbit"
+ ))
+
+(defconst w/scripted-chatter-colors
+ (--map
+ (cons it (w/color-value-to-html-code (list (random 65546) (random 65536) (random 65536))))
+ w/scripted-chatters))
+
+(defconst w/scripted-chatter-sigils
+ (--map
+ (cons it
+ (s-concat
+ (if (= (random 2) 0) "💎")
+ (if (not (= (random 8) 0)) "💻")))
+ w/scripted-chatters))
+
+(defun w/scripted-run-one (cmd)
+ "Run a single scripted CMD."
+ (when (listp cmd)
+ (let ( (_timestamp (car cmd))
+ (ty (cadr cmd))
+ (args (cddr cmd)))
+ (cl-case ty
+ (msg
+ (let* ( (user (car args))
+ (text (cadr args))
+ (biblicality (w/bible-colorize-sentence text))
+ (text-colored-bible (car biblicality))
+ (text-with-emotes
+ (w/twitch-add-7tv-emotes
+ text-colored-bible)))
+ (w/chat-write-message
+ (w/make-chat-message
+ :user user
+ :id nil
+ :text text-with-emotes
+ :user-color (w/saget user w/scripted-chatter-colors)
+ :biblicality (cdr biblicality)
+ :sigil (w/saget user w/scripted-chatter-sigils)))))
+ (say
+ (w/twitch-say (car args)))
+ (redeem
+ (-let* ( ((user redeem input) args))
+ (w/twitch-handle-redeem-helper user redeem input)))
+ (resub
+ (-let [user (car args)]
+ (w/thank-sub user)
+ (w/chat-write-event (format "New subscriber: %s" user))))
+ (raid
+ (soundboard//play-clip "rampage.mp3")
+ (w/chat-write-event (format "%s just raided!" (car args))))
+ ))))
+
+(defvar w/scripted-time 0)
+(defvar w/scripted-script-live nil)
+(defconst w/scripted-script
+ '( (0 msg "UpsideDownNoodle" "Joel")
+ (3 msg "obtuse_racoon" "Joel")
+ (4 say "JoelCheck")
+ (6 msg "helldev1338" "Joel")
+ (7 msg "wfwef325345" "Joel")
+ (11 msg "hyperx_1139" "Joel")
+ (15 msg "doubleweed23" "hi")
+ (25 msg "silver_sanguine" "gomoco")
+ (32 msg "BigBigFrogVT" "hello!")
+ (40 msg "fef_wef_wef" "hello computer")
+ (42 resub "few_wef_wef")
+ (45 redeem "scenichighway2000" "BOOST" "")
+ (52 msg "unbeatablePanda" "omg hiii")
+ (60 msg "retroFreak99" "hello")
+ (63 redeem "unbeatablePanda" "BOOST" "")
+ (64 redeem "unbeatablePanda" "TSOOB" "")
+ (70 resub "doubleweed23")
+ (80 msg "UMBERTO777" "Joeler")
+ (90 msg "gfxfanX2" "hello male")
+ (94 msg "NUMBER_LOVE" "Joel")
+ (100 redeem "gfxfanX2" "TSOOB" "")
+ (110 resub "UMBERTO777" "")
+ (115 msg "hyperx_1139" "Joeler")
+ (115 msg "obtuse_racoon" "!glebt")
+ (116 msg "glebtbot" "glebt acknowledged")
+ (120 redeem "NUMBER_LOVE" "TSOOB" "")
+ (125 msg "lord35" "Joel")
+ (130 msg "hearthstoneVT" "Hello! :D")
+ (134 redeem "hearthstoneVT" "BOOST" "")
+ (142 raid "AkumaJuliusCh")
+ (150 msg "derivedfunsum" "what are we doing today?")
+ (160 msg "gfxfanX2" "!today")
+ (161 say "completely normal stream")
+ (163 msg "AkumaJuliusCh" "I was playing pokemon polished crystal")
+ (164 msg "derivedfunsum" "Pog")
+ (180 msg "acegamingtime2" "What's going on in here?")
+ (181 msg "silver_sanguine" "yooo")
+ (192 msg "acegamingtime2" "Gotcha. Well, I'll be lurking at work, as usual!")
+ (197 redeem "Devious_Strength" "lurker check in" "")
+ (205 msg "doubleweed23" "good bit ICANT")
+ (211 redeem "UpsideDownNoodle" "lurker check in" "")
+ (220 redeem "doubleweed23" "BOOST" "")
+ (225 redeem "seadogseadog" "BOOST" "")
+ (226 redeem "seadogseadog" "TSOOB" "")
+ (250 msg "DevMAX123" "i'm new here what's he doing?" "")
+ (260 msg "wfwef325345" "@devmax123 clonking it up" "")
+ (265 msg "DevMAX123" "wtf" "")
+ (266 redeem "queueinging" "BOOST" "")
+ (280 msg "queueinging" "hello clonker")
+ (290 msg "queueinging" "what are we up to today? short title?")
+ (305 msg "retroFreak99" "normal stream mode ydwc")
+ (310 msg "DevMAX123" "any advice on learning coding? i'm in school and i want to do devops")
+ (330 msg "cannabis7man" "Joel")
+ (332 msg "hyperx_1139" "!glebt")
+ (333 msg "glebtbot" "glebt acknowledged")
+ (340 msg "Obscurantism" "Hello hello")
+ (350 msg "UMBERTO777" "@Obscurantism hello")
+ (360 msg "Obscurantism" "Not bad. Worked on my game, made some progress on pathfinding.")
+ (366 msg "Obscurantism" "Hello Umberto!")
+ (370 msg "camelotCannot" "what language is this")
+ (380 msg "camelotCannot" "oic never heard of that :D")
+ (385 redeem "RealManTwitch" "BOOST" "")
+ (387 redeem "ANIMAL2CH" "BOOST" "")
+ (390 msg "derivedfunsum" "what did you do this weekend? how is maude?")
+ (395 redeem "ANIMAL2CH" "TSOOB" "")
+ (400 msg "winner_dinner" "Joel")
+ (405 redeem "winner_dinner" "BOOST" "")
+ (408 msg "NANDGATEGIRL" ":3")
+ (415 msg "NANDGATEGIRL" "have you heard of Baroque? i played the saturn version on saturday")
+ (420 redeem "devil3" "lurker check in" "")
+ (422 msg "hyperx_1139" "baroque is kino")
+ (425 msg "hyperx_1139" "love that game")
+ (440 msg "PitViperVT" "omg lcolonq hi")
+ (442 msg "PitViperVT" "I see we're looking at wikipedia again ydwc")
+ (445 msg "terminaldog456" "hello computer i'm here now gomoco")
+ (450 msg "camelotCannot" "what is gomoco")
+ (457 redeem "seadogseadog" "lurker check in" "")
+ (460 msg "terminaldog456" "i wanted to work on stuff this weekend but i wound up playing games")
+ (470 msg "AkumaJuliusCh" "i'm going to get some food and go to bed. have a good stream!")
+ (473 redeem "unwashedplate" "lurker check in" "")
+ (474 redeem "chef_chef" "lurker check in" "")
+ (480 msg "gfxfanX2" "Are you doing ELF stuff?")
+ (482 msg "ThePuppetmasterGaming" "Joel")
+ (485 redeem "GothDragon" "TSOOB" "")
+ (488 redeem "camelotCannot" "TSOOB" "")
+ (494 msg "hearthstoneVT" "I never know what's happening around here but I'm glad you're having fun")
+ (497 redeem "byholydog" "BOOST" "")
+ (510 redeem "byholydog" "total clarity" "")
+ (511 msg "byholydog" "thank you")
+ (512 msg "GothDragon" "thank you")
+ (512 msg "terminaldog456" "thank you")
+ (514 msg "PitViperVT" "thank you")
+ (518 msg "winner_dinner" "@NANDGATEGIRL i think i had that on the wii as a kid")
+ (530 msg "CodingLord04" "hello, how do I learn Python? I want to get an AI job")
+ (533 msg "gemivemi" "Joeling")
+ (534 redeem "gemivemi" "BOOST" "")
+ (536 redeem "drascoTabasco" "lurker check in" "")
+ (538 redeem "UNREALITY_FAN" "BOOST" "")
+ (540 msg "UNREALITY_FAN" "hello hello hello")
+ (541 msg "UNREALITY_FAN" "any boosters?")
+ (544 msg "GothDragon" "BOOST")
+ (545 msg "gfxfanX2" "nice")
+ (546 redeem "seadogseadog" "BOOST" "")
+ (546 redeem "dubiousdiskjockey" "BOOST" "")
+ (548 redeem "ubertuber" "BOOST" "")
+ (550 redeem "celerityVT" "BOOST" "")
+ (552 redeem "BabyYodaFan55" "BOOST" "")
+ (555 msg "celerityVT" "thank you for the so")
+ (560 redeem "BabyYodaFan55" "arrow" "loves baby yoda")
+ (562 msg "xXpyrexdestroyerXx" "yo yo")
+ (563 resub "xXpyrexdestroyerXx")
+ (564 redeem "hellodogworld" "BOOST" "")
+ (570 msg "silver_sanguine" "how are maude's teeth?")
+ (575 redeem "ANIMAL2CH" "theme: bio" "")
+ (578 msg "UltraTomato" "what's up freak bitches")
+ (580 msg "lord35" "Joeler hi")
+ (585 msg "SUPER_TROOPER" "ICANT")
+ (586 msg "TheBeastlyNature" "ICANT")
+ (587 msg "ubertuber" "ICANT")
+ (588 msg "gemivemi" "ICANT")
+ (589 msg "terminaldog456" "ICANT")
+ (590 msg "winner_dinner" "ICANT")
+ (591 msg "fef_wef_wef" "ICANT")
+ (592 msg "cameldromedary" "ICANT")
+ (593 msg "Howdy_Kekw" "ICANT")
+ (594 msg "Zuvius222" "ICANT")
+ (595 msg "AnthonyRabbit" "ICANT")
+ (596 msg "hyperx_1139" "ICANT")
+ (597 msg "CodingLord04" "ICANT")
+ (598 msg "NANDGATEGIRL" "ICANT")
+ (599 msg "unbeatablePanda" "ICANT")
+ (600 msg "obtuse_racoon" "ICANT")
+ (601 say "ICANT")
+ (602 say "ICANT")
+ (603 say "ICANT")
+ (604 say "ICANT")
+ (605 say "ICANT")
+ (606 say "ICANT")
+ (607 say "ICANT")
+ (608 say "ICANT")
+ (609 say "ICANT")
+ (610 say "ICANT")
+ (611 say "ICANT")
+ (612 say "ICANT")
+ (613 say "ICANT")
+ (614 say "ICANT")
+ (615 say "ICANT")
+ (616 say "ICANT")
+ (617 say "ICANT")
+ (618 say "ICANT")
+ (619 say "ICANT")))
+
+(defun w/scripted-run-next-if-ready ()
+ "Run the next script entry if ready."
+ (let* ( (next (car w/scripted-script-live))
+ (ts (car next)))
+ (when (and ts (< (* ts 2) w/scripted-time))
+ (w/scripted-run-one next)
+ (pop w/scripted-script-live))))
+
+(defvar w/scripted-update-timer nil)
+(defun w/scripted-run-update-timer ()
+ "Run the script update timer."
+ (when w/scripted-update-timer
+ (cancel-timer w/scripted-update-timer))
+ (incf w/scripted-time)
+ (if (null w/scripted-script-live)
+ (w/scripted-run-one
+ `(0 msg ,(w/pick-random w/scripted-chatters) "This is a normal stream."))
+ (w/scripted-run-next-if-ready))
+ (setq
+ w/scripted-update-timer
+ (run-with-timer 1 nil #'w/scripted-run-update-timer)))
+
+(defun w/scripted-start ()
+ "Start the script."
+ (w/chat-clear)
+ (setf w/scripted-time 0)
+ (setf w/scripted-script-live w/scripted-script)
+ (setf w/twitch-boosters nil)
+ (w/scripted-run-update-timer))
+
+(defun w/scripted-stop ()
+ "Start the script."
+ (when w/scripted-update-timer
+ (cancel-timer w/scripted-update-timer)
+ (setf w/scripted-update-timer nil)))
+
+(provide 'wasp-scripted)
+;;; wasp-scripted.el ends here