]> git.localhorst.tv Git - alttp.git/blobdiff - app/TwitchBot/TokenizedMessage.php
better yes classification
[alttp.git] / app / TwitchBot / TokenizedMessage.php
index b03e2192eca4948273047cad7c6ea59c5b2a83c1..46f4a4495f1758816ac03c214b7843eda0bbf2ce 100644 (file)
@@ -67,10 +67,18 @@ class TokenizedMessage {
                return Str::endsWith($this->emoteless, $text);
        }
 
+       public function endsWithEmotelessToken($text) {
+               return !empty($this->emoteless_tokens) && $this->tokens[count($this->emoteless_tokens) - 1] == $text;
+       }
+
        public function endsWithRaw($text) {
                return Str::endsWith($this->raw, $text);
        }
 
+       public function endsWithToken($text) {
+               return !empty($this->tokens) && $this->tokens[count($this->tokens) - 1] == $text;
+       }
+
        public function getNumericValue() {
                return intval($this->text);
        }
@@ -185,10 +193,18 @@ class TokenizedMessage {
                return $this->startsWith($text) || $this->endsWith($text);
        }
 
+       public function startsOrEndsWithEmotelessToken($text) {
+               return $this->startsWithEmotelessToken($text) || $this->endsWithEmotelessToken($text);
+       }
+
        public function startsOrEndsWithRaw($text) {
                return $this->startsWithRaw($text) || $this->endsWithRaw($text);
        }
 
+       public function startsOrEndsWithToken($text) {
+               return $this->startsWithToken($text) || $this->endsWithToken($text);
+       }
+
        public function startsWith($text) {
                return Str::startsWith($this->text, $text);
        }
@@ -197,10 +213,18 @@ class TokenizedMessage {
                return Str::startsWith($this->emoteless, $text);
        }
 
+       public function startsWithEmotelessToken($text) {
+               return isset($this->emoteless_tokens[0]) && $this->emoteless_tokens[0] == $text;
+       }
+
        public function startsWithRaw($text) {
                return Str::startsWith($this->raw, $text);
        }
 
+       public function startsWithToken($text) {
+               return isset($this->tokens[0]) && $this->tokens[0] == $text;
+       }
+
 
        public function isSpammy() {
                if ($this->startsWith('!')) {
@@ -254,7 +278,7 @@ class TokenizedMessage {
                                $this->classification = 'sweat';
                        } else if ($this->endsWithEmoteless('?')) {
                                $this->classification = 'question';
-                       } else if ($this->hasToken(['ja', 'jo', 'yep', 'yes']) || $this->containsRaw('nodders') || $this->hasEmoteThatEndsWith(['nod', 'nodders', 'yea'])) {
+                       } else if ($this->hasToken(['jo', 'yep', 'yes']) || $this->startsOrEndsWithEmotelessToken('ja') || $this->containsRaw('nodders') || $this->hasEmoteThatEndsWith(['nod', 'nodders', 'yea'])) {
                                $this->classification = 'yes';
                        } else if ($this->hasToken(['nah', 'nee', 'nein', 'no']) || $this->containsRaw('nopers') || $this->hasEmoteThatEndsWith(['nay', 'nope', 'nopers'])) {
                                $this->classification = 'no';