X-Git-Url: https://git.localhorst.tv/?a=blobdiff_plain;f=app%2FTwitchBot%2FTokenizedMessage.php;fp=app%2FTwitchBot%2FTokenizedMessage.php;h=46f4a4495f1758816ac03c214b7843eda0bbf2ce;hb=60243d0284acc3ef886c0f7a60116a881c207bb0;hp=b03e2192eca4948273047cad7c6ea59c5b2a83c1;hpb=1b9629ce7f600b4aa9c9d51a281e514031871828;p=alttp.git diff --git a/app/TwitchBot/TokenizedMessage.php b/app/TwitchBot/TokenizedMessage.php index b03e219..46f4a44 100644 --- a/app/TwitchBot/TokenizedMessage.php +++ b/app/TwitchBot/TokenizedMessage.php @@ -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';