]> git.localhorst.tv Git - alttp.git/blobdiff - app/Models/ChatLog.php
respond to whispers
[alttp.git] / app / Models / ChatLog.php
index 2d43b2f08b008e3684e0b9c0ed6fb0532f8194af..49a57c25a626b5ade8c6b072899591539fc74739 100644 (file)
@@ -25,8 +25,24 @@ class ChatLog extends Model {
                return TokenizedMessage::fromLog($this);
        }
 
+       public function isReply() {
+               return !empty($this->tags['reply-parent-msg-body']);
+       }
+
+       public function getReplyParent() {
+               return str_replace('\\s', ' ', $this->tags['reply-parent-msg-body']);
+       }
+
+       public function getReplyParentUser() {
+               return $this->tags['reply-parent-display-name'];
+       }
+
+       public function getText() {
+               return $this->params[1];
+       }
+
        public function getTextWithoutEmotes() {
-               $text = $this->text_content;
+               $text = $this->params[1];
                if (isset($this->tags['emotes']) && !empty($this->tags['emotes'])) {
                        $emotes = explode('/', $this->tags['emotes']);
                        foreach ($emotes as $emote) {
@@ -41,6 +57,13 @@ class ChatLog extends Model {
                return trim(preg_replace('/\s+/', ' ', $text));
        }
 
+       public function getTextWithoutReply() {
+               if ($this->isReply()) {
+                       return mb_substr($this->params[1], mb_strlen($this->getReplyParentUser()) + 2);
+               }
+               return $this->params[1];
+       }
+
        public function evaluate() {
                $this->evaluateUser();
                $this->evaluateChannel();
@@ -54,7 +77,7 @@ class ChatLog extends Model {
                        return;
                }
 
-               if ($this->command == 'PRIVMSG') {
+               if ($this->command == 'PRIVMSG' || $this->command == 'WHISPER') {
                        if (static::isKnownBot($this->nick)) {
                                $this->type = 'bot';
                        } else if (substr($this->params[0], 0, 1) == '#') {
@@ -62,7 +85,7 @@ class ChatLog extends Model {
                        } else {
                                $this->type = 'dm';
                        }
-                       $this->text_content = $this->params[1];
+                       $this->text_content = $this->getTextWithoutReply();
                        $this->detectLanguage();
                        $tokenized = $this->tokenize();
                        if ($tokenized->isSpammy()) {