Longman\TelegramBot\Commands\AdminCommands\WhoisCommand::execute PHP Method

execute() public method

Command execute method
public execute ( ) : mixed
return mixed
    public function execute()
    {
        $message = $this->getMessage();
        $chat_id = $message->getChat()->getId();
        $command = $message->getCommand();
        $text = trim($message->getText(true));
        $data = ['chat_id' => $chat_id];
        //No point in replying to messages in private chats
        if (!$message->getChat()->isPrivateChat()) {
            $data['reply_to_message_id'] = $message->getMessageId();
        }
        if ($command !== 'whois') {
            $text = substr($command, 5);
            //We need that '-' now, bring it back
            if (strpos($text, 'g') === 0) {
                $text = str_replace('g', '-', $text);
            }
        }
        if ($text === '') {
            $text = 'Provide the id to lookup: /whois <id>';
        } else {
            $user_id = $text;
            $chat = null;
            $created_at = null;
            $updated_at = null;
            $result = null;
            if (is_numeric($text)) {
                $results = DB::selectChats(true, true, true, null, null, $user_id);
                if (!empty($results)) {
                    $result = reset($results);
                }
            } else {
                $results = DB::selectChats(true, true, true, null, null, null, $text);
                if (is_array($results) && count($results) === 1) {
                    $result = reset($results);
                }
            }
            if (is_array($result)) {
                $result['id'] = $result['chat_id'];
                $chat = new Chat($result);
                $user_id = $result['id'];
                $created_at = $result['chat_created_at'];
                $updated_at = $result['chat_updated_at'];
                $old_id = $result['old_id'];
            }
            if ($chat !== null) {
                if ($chat->isPrivateChat()) {
                    $text = 'User ID: ' . $user_id . PHP_EOL;
                    $text .= 'Name: ' . $chat->getFirstName() . ' ' . $chat->getLastName() . PHP_EOL;
                    $username = $chat->getUsername();
                    if ($username !== null && $username !== '') {
                        $text .= 'Username: @' . $username . PHP_EOL;
                    }
                    $text .= 'First time seen: ' . $created_at . PHP_EOL;
                    $text .= 'Last activity: ' . $updated_at . PHP_EOL;
                    //Code from Whoami command
                    $limit = 10;
                    $offset = null;
                    $response = Request::getUserProfilePhotos(['user_id' => $user_id, 'limit' => $limit, 'offset' => $offset]);
                    if ($response->isOk()) {
                        /** @var UserProfilePhotos $user_profile_photos */
                        $user_profile_photos = $response->getResult();
                        if ($user_profile_photos->getTotalCount() > 0) {
                            $photos = $user_profile_photos->getPhotos();
                            /** @var PhotoSize $photo */
                            $photo = $photos[0][2];
                            $file_id = $photo->getFileId();
                            $data['photo'] = $file_id;
                            $data['caption'] = $text;
                            return Request::sendPhoto($data);
                        }
                    }
                } elseif ($chat->isGroupChat()) {
                    $text = 'Chat ID: ' . $user_id . (!empty($old_id) ? ' (previously: ' . $old_id . ')' : '') . PHP_EOL;
                    $text .= 'Type: ' . ucfirst($chat->getType()) . PHP_EOL;
                    $text .= 'Title: ' . $chat->getTitle() . PHP_EOL;
                    $text .= 'First time added to group: ' . $created_at . PHP_EOL;
                    $text .= 'Last activity: ' . $updated_at . PHP_EOL;
                }
            } elseif (is_array($results) && count($results) > 1) {
                $text = 'Multiple chats matched!';
            } else {
                $text = 'Chat not found!';
            }
        }
        $data['text'] = $text;
        return Request::sendMessage($data);
    }
WhoisCommand