+ private function tagChannelSpecialSent(Channel $channel, $classification) {
+ $this->getNotes($channel);
+ $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])) {
+ return time() - $notes['last_special'][$classification];
+ }
+ return 999999;
+ }
+
+ private function isDirectedAtMe($raw_text) {
+ $text = strtolower($raw_text);
+ if (strpos($text, 'horsti') !== false) {
+ return true;
+ }
+ return false;
+ }
+
+ private function shouldRespond(Channel $channel) {
+ $setting = $channel->getChatSetting('respond', 'yes');
+ if ($setting == 'yes') {
+ return true;
+ }
+ if ($setting == '50') {
+ return random_int(0, 1);
+ }
+ return false;
+ }
+
+ private function getResponseTo(TokenizedMessage $msg) {
+ switch ($msg->classify()) {
+ case 'gg':
+ return ['love', 'eyes', 'thx', 'pog', 'kappa'];
+ case 'gl':
+ return ['love', 'eyes', 'thx'];
+ case 'hi':
+ return ['hi', 'love', 'eyes', 'hype', 'pog'];
+ case 'kappa':
+ return ['kappa', 'lol', 'eyes'];
+ case 'love':
+ return ['hi', 'love', 'eyes', 'thx'];
+ case 'question':
+ return ['yes', 'no', 'kappa', 'lol', 'wtf', 'number'];
+ case 'rage':
+ return ['kappa', 'lol', 'rage'];
+ case 'wtf':
+ return ['kappa', 'lol', 'rage'];
+ }
+ return false;
+ }
+