throw new \Exception('channel has no twitch chat set');
}
$validatedData = $request->validate([
+ 'adlib' => 'boolean',
'bot_nick' => 'string',
- 'text' => 'string|required',
+ 'category' => 'string',
+ 'text' => 'string',
]);
$this->authorize('editRestream', $channel);
$nick = empty($validatedData['bot_nick']) ? 'localhorsttv' : $validatedData['bot_nick'];
- TwitchBotCommand::chat($channel->twitch_chat, $validatedData['text'], $request->user(), $nick);
+ if (isset($validatedData['adlib']) && $validatedData['adlib']) {
+ TwitchBotCommand::adlibChat($channel, $request->user());
+ } else if (empty($validatedData['category'])) {
+ TwitchBotCommand::chat($channel->twitch_chat, $validatedData['text'], $request->user(), $nick);
+ } else {
+ TwitchBotCommand::randomChat($channel, $validatedData['category'], $request->user(), $nick);
+ }
return $this->sendChannel($channel);
}
+ public function chatBotLog(Request $request, Channel $channel) {
+ $this->authorize('editRestream', $channel);
+ $log = $channel->chat_bot_logs()
+ ->with(['origin', 'user'])
+ ->orderBy('created_at', 'DESC')
+ ->limit(150)
+ ->get();
+ return $log->values()->toJson();
+ }
+
public function chatSettings(Request $request, Channel $channel) {
if (!$channel->twitch_chat) {
throw new \Exception('channel has no twitch chat set');
}
$validatedData = $request->validate([
+ 'adlib' => 'integer|min:0|max:100',
+ 'language' => 'string|in:de,en,es,fr',
+ 'min_age' => 'integer|min:1',
+ 'respond' => 'string|in:50,no,yes',
+ 'source' => 'string|in:any,cat,catchan,chan',
'wait_msgs_min' => 'integer|min:1',
- 'wait_msgs_max' => 'integer',
+ 'wait_msgs_max' => 'integer|min:1',
'wait_time_min' => 'integer',
'wait_time_max' => 'integer',
]);
case 'solve':
if ($channel->hasActiveGuessing() && $channel->isValidGuess($validatedData['solution'])) {
$winners = $channel->solveGuessing($validatedData['solution']);
- $names = [];
- foreach ($winners as $winner) {
- if ($winner->score > 0) {
- $names[] = $winner->uname;
- }
- }
- if (empty($names)) {
- $msg = $channel->getGuessingSetting('no_winners_message');
- } else {
- $msg = $channel->getGuessingSetting('winners_message');
- $msg = str_replace('{names}', $channel->listAnd($names), $msg);
- }
+ $msg = $channel->listGuessingWinners($winners);
if (!empty($msg)) {
TwitchBotCommand::chat($channel->twitch_chat, $msg);
}
$validatedData = $request->validate([
'active_message' => 'string',
'cancel_message' => 'string',
+ 'close_winners_message' => 'string',
'invalid_solution_message' => 'string',
+ 'leaderboard_type' => 'string',
'no_winners_message' => 'string',
'not_active_message' => 'string',
'points_exact_first' => 'numeric|min:1|max:5',