protected function reply($response, $params = []) { if (empty($response)) { Log::error('Tried to send an empty message...', [$this->update->getMessage(), $response]); return; } if (!array_key_exists('reply_to_message_id', $params)) { $params['reply_to_message_id'] = $this->update->getMessage()->getMessageId(); } Helpers::sendMessage($response, $this->getUpdate()->getMessage()->getChat()->getId(), $params); }
/** * Handle an incoming request. * * @param \Illuminate\Http\Request $request * @param \Closure $next * @return mixed */ public function handle($request, Closure $next) { $botKey = null; if ($request->route()[2]['botKey']) { $botKey = $request->route()[2]['botKey']; } $telegram = app('telegram'); if (!$botKey || $botKey != $telegram->getBotConfig(config('telegram.default'))['token']) { throw new NotFoundHttpException(); } if ($request->getMethod() != Request::METHOD_POST) { $ownerId = $telegram->getBotConfig(config('telegram.default'))['owner_id']; if ($ownerId) { Helpers::sendMessage(sprintf('The IP %s just accessed %s', $request->getClientIp(), $request->url()), $ownerId); } } return $next($request); }
/** * Creates a new quote from a Message containing another Message as a reply. * * @param Message $message The Message to make a quote from. Assumed to contain a valid reply. * @return int|null Qoute ID on success, null on failure. */ public static function createQuote(Message $message) { $db = app('db')->connection()->table('quotes'); $quoteSource = $message->getReplyToMessage(); $messageId = $message->getReplyToMessage()->getMessageId(); $groupId = $quoteSource->getChat()->getId(); $comment = trim(mb_strstr($message->getText(), ' ')) ?: null; self::createOrUpdateUser($quoteSource->getFrom()); $values = ['added_by_id' => $message->getFrom()->getId(), 'user_id' => $quoteSource->getFrom()->getId(), 'group_id' => $groupId, 'message_id' => $messageId, 'message_timestamp' => $quoteSource->getDate(), 'content' => $quoteSource->getText(), 'comment' => $comment]; $existing = $db->where('message_id', $messageId)->where('group_id', $groupId)->limit(1)->value('id'); if (!$existing) { return $db->insertGetId($values); } else { Helpers::sendMessage(sprintf('I already have that quote saved as #%s.', $existing), $groupId, ['reply_to_message_id' => $message->getMessageId()]); return null; } }