/** * @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; }
/** * @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->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; }
/** * @param Message $message * @return mixed */ public function handle(Message $message) { $text = $message->escaped_text; if (preg_match('/^(@.*?\\s)?(?:погугли|гугли)\\s(.*?)$/isu', $text, $matches)) { if (!trim($matches[2])) { return $message; } $hasMentions = count($message->mentions); $mention = null; if ($hasMentions) { $mention = $message->mentions[0]->login === \Auth::user()->login ? $message->user : $message->mentions[0]; } $answer = trim($matches[1]) && $mention ? \Lang::get('google.personal', ['user' => $mention->login, 'query' => urlencode($matches[2])]) : \Lang::get('google.common', ['query' => urlencode($matches[2])]); $message->answer($answer); return null; } return $message; }
/** * @param Message $message * @return mixed */ public function handle(Message $message) { $collection = $this->validator->validate($message); $hasAnswers = false; foreach ($collection as $state) { $user = $state->getUser(); if ($state->isIncrement()) { $message->user->addKarmaTo($user, $message); if ($user->id === \Auth::user()->id) { $message->answer(\Lang::get('karma.bot', ['user' => $message->user->login])); } } if (!$state->isNothing()) { $hasAnswers = true; $message->italic($state->getTranslation($user->karma_text)); } } if (!$hasAnswers) { return $message; } return Storage::SIGNAL_STOP; }