]> git.localhorst.tv Git - alttp.git/blobdiff - app/Http/Controllers/ChannelController.php
twitch chat bot controls
[alttp.git] / app / Http / Controllers / ChannelController.php
index da1f5ef76590166b5e9cf1827ce93cf2c8240421..b735a6f70b3e3e6fcc45c0df81dfd9446af970e9 100644 (file)
@@ -47,10 +47,12 @@ class ChannelController extends Controller {
                        throw new \Exception('channel has no twitch chat set');
                }
                $validatedData = $request->validate([
+                       'bot_nick' => 'string',
                        'text' => 'string|required',
                ]);
                $this->authorize('editRestream', $channel);
-               TwitchBotCommand::chat($channel->twitch_chat, $validatedData['text'], $request->user());
+               $nick = empty($validatedData['bot_nick']) ? 'localhorsttv' : $validatedData['bot_nick'];
+               TwitchBotCommand::chat($channel->twitch_chat, $validatedData['text'], $request->user(), $nick);
                return $channel->toJson();
        }
 
@@ -58,10 +60,18 @@ class ChannelController extends Controller {
                if (!$channel->twitch_chat) {
                        throw new \Exception('channel has no twitch chat set');
                }
+               $validatedData = $request->validate([
+                       'bot_nick' => 'string',
+               ]);
                $this->authorize('editRestream', $channel);
-               $channel->join = true;
+               $nick = empty($validatedData['bot_nick']) ? 'localhorsttv' : $validatedData['bot_nick'];
+               if ($nick == 'localhorsttv') {
+                       $channel->join = true;
+               } else if ($nick == 'horstiebot') {
+                       $channel->chat = true;
+               }
                $channel->save();
-               TwitchBotCommand::join($channel->twitch_chat, $request->user());
+               TwitchBotCommand::join($channel->twitch_chat, $request->user(), $nick);
                return $channel->toJson();
        }
 
@@ -69,10 +79,18 @@ class ChannelController extends Controller {
                if (!$channel->twitch_chat) {
                        throw new \Exception('channel has no twitch chat set');
                }
+               $validatedData = $request->validate([
+                       'bot_nick' => 'string',
+               ]);
                $this->authorize('editRestream', $channel);
-               $channel->join = false;
+               $nick = empty($validatedData['bot_nick']) ? 'localhorsttv' : $validatedData['bot_nick'];
+               if ($nick == 'localhorsttv') {
+                       $channel->join = false;
+               } else if ($nick == 'horstiebot') {
+                       $channel->chat = false;
+               }
                $channel->save();
-               TwitchBotCommand::part($channel->twitch_chat, $request->user());
+               TwitchBotCommand::part($channel->twitch_chat, $request->user(), $nick);
                return $channel->toJson();
        }