exec('status_online'); } public function setStatusOffline() { return $this->exec('status_offline'); } public function msg($peer, $msg) { $peer = $this->escapePeer($peer); $msg = $this->escapeStringArgument($msg); return $this->exec('msg ' . $peer . ' ' . $msg); } public function addContact($phoneNumber, $firstName, $lastName) { $phoneNumber = preg_replace('%[^0-9]%', '', (string) $phoneNumber); if (empty($phoneNumber)) { return false; } return $this->exec('add_contact ' . $phoneNumber . ' ' . $this->escapeStringArgument($firstName) . ' ' . $this->escapeStringArgument($lastName)); } public function renameContact($contact, $firstName, $lastName) { return $this->exec('rename_contact ' . $this->escapePeer($contact) . ' ' . $this->escapeStringArgument($firstName) . ' ' . $this->escapeStringArgument($lastName)); } public function deleteContact($contact) { return $this->exec('del_contact ' . $this->escapePeer($contact)); } public function markRead($peer) { return $this->exec('mark_read ' . $this->escapePeer($peer)); } public function getContactList() { return explode(PHP_EOL, $this->exec('contact_list')); } public function getUserInfo($user) { return $this->exec('user_info ' . $this->escapePeer($user)); } public function getDialogList() { return explode(PHP_EOL, $this->exec('dialog_list')); } public function getHistory($peer, $limit = null, $offset = null) { if ($limit !== null) { $limit = (int) $limit; if ($limit < 1) { //if limit is lesser than 1, telegram-cli crashes $limit = 1; } $limit = ' ' . $limit; } else { $limit = ''; } if ($offset !== null) { $offset = ' ' . (int) $offset; } else { $offset = ''; } return $this->exec('history ' . $this->escapePeer($peer) . $limit . $offset); } }