/**
  * @param Message $message
  * @return mixed
  */
 public function handle(Message $message)
 {
     if ($message->user->login === \Auth::user()->login) {
         return $message;
     }
     // Personal message
     $isBotMention = $message->hasMention(function (User $user) {
         return $user->login === \Auth::user()->login;
     });
     if ($isBotMention) {
         //$this->ai->handle($message);
     } else {
         // Hello all
         $isHello = Str::contains($message->text_without_special_chars, \Lang::get('personal.hello_query'));
         if ($isHello) {
             $id = array_rand(\Lang::get('personal.hello'));
             $message->italic(\Lang::get('personal.hello.' . $id, ['user' => $message->user->login]));
         }
         // Question
         $isQuestion = Str::contains($message->text_without_special_chars, ['можно задать вопрос', 'хочу задать вопрос']);
         if ($isQuestion) {
             $message->italic(sprintf('@%s, и какой ответ ты ожидаешь услышать?', $message->user->login));
         }
     }
     return $message;
 }
Exemplo n.º 2
0
 /**
  * @param Message $message
  * @return mixed
  */
 public function handle(Message $message)
 {
     $isImage = preg_match('/[^`]http(?:s)?:\\/\\/.*?\\.(?:jpg|png|jpeg|svg|bmp)/iu', ' ' . $message->text);
     $isVideo = preg_match('/[^`]http(?:s)?:\\/\\/(?:www\\.)?(?:youtube\\.com|youtu\\.be).*?/iu', ' ' . $message->text);
     if (($isImage || $isVideo) && $message->user->login !== \Auth::user()->login) {
         $answer = \Lang::get('gitter.inline', ['user' => $message->user->login]);
         $message->italic($answer);
     }
     return $message;
 }
 /**
  * @param Message $message
  * @return mixed
  */
 public function handle(Message $message)
 {
     $text = $message->text;
     $lines = count(explode("\n", $text));
     $chars = mb_strlen($text);
     if (preg_match_all('/^((`{3}\\s*)(\\w+)?(\\s*([\\w\\W]+?)\\n*)\\2)\\n*(?:[^\\S\\w\\s]|$)/m', $text, $matches)) {
         $codeLines = 0;
         foreach ($matches[5] as $code) {
             $codeLines += count(explode("\n", $code));
         }
         if ($codeLines > self::MAX_CODE_LINES) {
             $answer = \Lang::get('long.code_personal', ['user' => $message->user->login]);
             $message->italic($answer);
             return null;
         }
     } elseif ($lines > self::MAX_LINES || $chars > self::MAX_CHARS) {
         $answer = \Lang::get('long.text_personal', ['user' => $message->user->login]);
         $message->italic($answer);
         return null;
     }
     return $message;
 }
 /**
  * @param Message $message
  * @return mixed
  */
 public function handle(Message $message)
 {
     $text = $message->escaped_text;
     if (preg_match('/^(@.*?\\s)?(?:оформи\\sкод|код\\sоформи).*?$/isu', $text)) {
         $hasMentions = count($message->mentions);
         $mention = null;
         if ($hasMentions) {
             $mention = $message->mentions[0]->login === \Auth::user()->login ? $message->user : $message->mentions[0];
         }
         $answer = $mention ? \Lang::get('markdown.personal', ['user' => $mention->login]) : \Lang::get('markdown.common');
         $message->italic($answer);
         return null;
     }
     return $message;
 }
Exemplo n.º 5
0
 /**
  * @param Message $message
  * @param $text
  */
 protected function answer(Message $message, $text)
 {
     $this->lastAnswer = $text;
     $message->italic(sprintf('@%s, ' . $text, $this->user->login));
 }