From 8c8efaf576ae867808802447c9428df04e7733e4 Mon Sep 17 00:00:00 2001 From: Daniel Karbach Date: Thu, 11 Apr 2024 09:37:51 +0200 Subject: [PATCH] prevent repeat special chat --- app/TwitchBot/TwitchChatBot.php | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) diff --git a/app/TwitchBot/TwitchChatBot.php b/app/TwitchBot/TwitchChatBot.php index 420e937..abc1b45 100644 --- a/app/TwitchBot/TwitchChatBot.php +++ b/app/TwitchBot/TwitchChatBot.php @@ -132,7 +132,7 @@ class TwitchChatBot extends TwitchBot { } private function contextualMsg(Channel $channel) { - $last = $this->getNote($channel, 'last_special'); + $last = $this->getLastSpecialSent($channel); $classifications = $this->collectClassifications($channel); $count_quotas = [ 'gg' => 2, @@ -155,6 +155,7 @@ class TwitchChatBot extends TwitchBot { 'o7' => 300, ]; foreach ($classifications as $classification => $count) { + if ($classification == $last) continue; if (!isset($count_quotas[$classification]) || $count < $count_quotas[$classification]) continue; if (!isset($time_quotas[$classification]) || $this->getTimeSinceSpecial($channel, $classification) < $time_quotas[$classification]) continue; $this->tagChannelSpecialSent($channel, $classification); @@ -270,6 +271,19 @@ class TwitchChatBot extends TwitchBot { $this->notes[$channel->id]['last_special'][$classification] = time(); } + private function getLastSpecialSent(Channel $channel) { + $notes = $this->getNotes($channel); + $max_time = 0; + $max_classification = ''; + foreach ($notes['last_special'] as $classification => $time) { + if ($time > $max_time) { + $max_time = $time; + $max_classification = $classification; + } + } + return $max_classification; + } + private function getTimeSinceSpecial(Channel $channel, $classification) { $notes = $this->getNotes($channel); if (isset($notes['last_special'][$classification])) { -- 2.39.2