}
private function contextualMsg(Channel $channel) {
- $last = $this->getNote($channel, 'last_special');
+ $last = $this->getLastSpecialSent($channel);
$classifications = $this->collectClassifications($channel);
$count_quotas = [
'gg' => 2,
'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);
$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])) {