예제 #1
0
 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);
 }
예제 #2
0
 /**
  * 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);
 }
예제 #3
0
 /**
  * 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;
     }
 }