X-Git-Url: https://git.localhorst.tv/?a=blobdiff_plain;f=app%2FTwitchBot%2FTokenizedMessage.php;h=4b7d758221d71aa9a9a3d9cbfdd9cf3cde77cb73;hb=1a863c3ecfa04eacf7df3c5bce71c12244e4625b;hp=b32ba720a3cb0489d61143969b82f4e0e154f83a;hpb=2d1c02504d80ad0e2c754f31f3b17d8c9ea60682;p=alttp.git diff --git a/app/TwitchBot/TokenizedMessage.php b/app/TwitchBot/TokenizedMessage.php index b32ba72..4b7d758 100644 --- a/app/TwitchBot/TokenizedMessage.php +++ b/app/TwitchBot/TokenizedMessage.php @@ -22,15 +22,15 @@ class TokenizedMessage { $positions = explode(',', $set[1]); foreach ($positions as $position) { $coords = explode('-', $position); - $this->emotes[] = preg_replace('/\d+$/', '', strtolower(substr($this->text, $coords[0], $coords[1] - $coords[0] + 1))); - for ($i = intval($coords[0]); $i <= intval($coords[1]); ++$i) { - $this->emoteless[$i] = ' '; - } + $emote_text = mb_substr($this->text, $coords[0], $coords[1] - $coords[0] + 1); + $this->original_emotes[] = $emote_text; + $this->emotes[] = preg_replace('/\d+$/', '', strtolower($emote_text)); + $this->emoteless = mb_substr($this->emoteless, 0, $coords[0]).str_repeat(' ', $coords[1] - $coords[0] + 1).mb_substr($this->emoteless, $coords[1] + 1); } } - $this->emoteless = trim(preg_replace('/\s+/', ' ', $this->emoteless)); + $this->emoteless = trim(preg_replace('/\s+/u', ' ', $this->emoteless)); } - $this->emoteless_raw = strtolower(preg_replace('/[^\w]/', '', $this->emoteless)); + $this->emoteless_raw = strtolower(preg_replace('/[^\w]/u', '', $this->emoteless)); $this->emoteless_tokens = array_values(array_map('trim', array_filter(preg_split('/\b/u', strtolower($this->emoteless))))); } @@ -79,10 +79,18 @@ class TokenizedMessage { return !empty($this->tokens) && $this->tokens[count($this->tokens) - 1] == $text; } + public function getEmotes() { + return $this->emotes; + } + public function getNumericValue() { return intval($this->text); } + public function getOriginalEmotes() { + return $this->original_emotes; + } + public function hasConsecutiveTokens($tokens) { for ($i = 0; $i < count($this->tokens) - count($tokens) + 1; ++$i) { for ($j = 0; $j < count($tokens); ++$j) { @@ -346,6 +354,7 @@ class TokenizedMessage { private $tokens; private $emotes = []; + private $original_emotes = []; private $emoteless = ''; private $emoteless_raw = ''; private $emoteless_tokens = [];