Readme update & new api methods

This commit is contained in:
Alexander Pankratov 2019-01-23 15:30:58 +03:00
parent 31fefe3cb2
commit a743b749d7
4 changed files with 2783 additions and 22 deletions

View File

@ -2,9 +2,9 @@
SWOOLE_SERVER_ADDRESS=127.0.0.1 SWOOLE_SERVER_ADDRESS=127.0.0.1
SWOOLE_SERVER_PORT=9503 SWOOLE_SERVER_PORT=9503
SWOOLE_WORKER_NUM=1 SWOOLE_WORKER_NUM=1
SWOOLE_HTTP_COMPRESSION=1 SWOOLE_HTTP_COMPRESSION=0
API_CLIENT_WHITELIST=['127.0.0.1'] API_CLIENT_WHITELIST=["127.0.0.1"]
# TELEGRAM CLIENT # TELEGRAM CLIENT
TELEGRAM_API_ID= TELEGRAM_API_ID=

3
.gitignore vendored
View File

@ -6,5 +6,4 @@ nbproject
.phpunit.result.cache .phpunit.result.cache
*.madeline *.madeline
*.madeline.lock *.madeline.lock
composer.phar composer.phar
composer.lock

2644
composer.lock generated Normal file

File diff suppressed because it is too large Load Diff

View File

@ -59,13 +59,13 @@ class Client {
* <pre> * <pre>
* [ * [
* 'peer' => '', * 'peer' => '',
* 'offset_id' => 0, * 'offset_id' => 0, // (optional)
* 'offset_date' => 0, * 'offset_date' => 0, // (optional)
* 'add_offset' => 0, * 'add_offset' => 0, // (optional)
* 'limit' => 0, * 'limit' => 0, // (optional)
* 'max_id' => 0, * 'max_id' => 0, // (optional)
* 'min_id' => 0, * 'min_id' => 0, // (optional)
* 'hash' => 0 * 'hash' => 0, // (optional)
* ] * ]
* </pre> * </pre>
* @return array * @return array
@ -86,24 +86,106 @@ class Client {
return $this->MadelineProto->messages->getHistory($data); return $this->MadelineProto->messages->getHistory($data);
} }
/**
* Получает определенные сообщения из канала.
*
* @param array $data
* <pre>
* [
* 'channel' => '',
* 'id' => [], //Id сообщения, или нескольких сообщений
* ]
* </pre>
* @return array
*/
public function getMessages($data):array {
$data = array_merge([
'channel' => '',
'id' => [],
],$data);
return $this->MadelineProto->channels->getMessages($data);
}
/** /**
* Пересылает сообщения * Пересылает сообщения
* *
* @param array $data * @param array $data
* Id сообщения, или нескольких сообщений * <pre>
* [
* 'from_peer' => '',
* 'to_peer' => '',
* 'id' => [], //Id сообщения, или нескольких сообщений
* ]
* </pre>
* @return array
*/ */
public function forwardMessages($data): void public function forwardMessages($data): array
{ {
$data = array_merge([ $data = array_merge([
'from_peer' => '', 'from_peer' => '',
'to_peer' => '', 'to_peer' => '',
'id' => [], 'id' => [],
],$data); ],$data);
$this->MadelineProto->messages->forwardMessages($data); return $this->MadelineProto->messages->forwardMessages($data);
}
/**
* Пересылает сообщения без ссылки на оригинал
*
* @param array $data
* <pre>
* [
* 'from_peer' => '',
* 'to_peer' => '',
* 'id' => [], //Id сообщения, или нескольких сообщений
* ]
* </pre>
* @return array
*/
public function copyMessages($data):array {
$data = array_merge([
'from_peer' => '',
'to_peer' => '',
'id' => [],
],$data);
$response = $this->getMessages([
'channel' => $data['from_peer'],
'id' => $data['id'],
]);
$result = [];
if (!$response || !is_array($response) || !array_key_exists('messages', $response)){
return $result;
}
foreach ($response['messages'] as $message) {
$messageData = [
'message' => $message['message'] ?? '',
'peer' => $data['to_peer'],
];
if (array_key_exists('media', $message)) {
$messageData['media'] = $message; //MadelineProto сама достанет все media из сообщения.
$result[] = $this->sendMedia($messageData);
} else {
$result[] = $this->sendMessage($messageData);
}
}
return $result;
} }
/** /**
* @param array $data * @param array $data
* <pre>
* [
* 'q' => '', //Поисковый запрос
* 'offset_id' => 0, // (optional)
* 'offset_date' => 0, // (optional)
* 'limit' => 10, // (optional)
* ]
* </pre>
* @return array * @return array
*/ */
public function searchGlobal(array $data): array public function searchGlobal(array $data): array
@ -119,18 +201,54 @@ class Client {
/** /**
* @param $data * @param $data
* <pre>
* [
* 'peer' => '',
* 'message' => '', // Текст сообщения
* 'reply_to_msg_id' => 0, // (optional)
* 'parse_mode' => 'HTML', // (optional)
* ]
* </pre>
* @return array * @return array
*/ */
public function sendMessage($data = []): array public function sendMessage($data = []): array
{ {
return $this->MadelineProto->messages->sendMessage( $data = array_merge([
array_merge([ 'peer' => '',
'peer' => '', 'message' => '',
'message' => '', 'reply_to_msg_id' => 0,
'reply_to_msg_id' => 0, 'parse_mode' => 'HTML',
'parse_mode' => 'HTML', ], $data);
], $data)
); return $this->MadelineProto->messages->sendMessage($data);
} }
/**
* @param $data
* <pre>
* [
* 'peer' => '',
* 'message' => '', // Текст сообщения,
* 'media' => [], // MessageMedia, Update, Message or InputMedia
* 'reply_to_msg_id' => 0, // (optional)
* 'parse_mode' => 'HTML', // (optional)
* ]
* </pre>
* @return array
*/
public function sendMedia($data = []): array
{
$data = array_merge([
'peer' => '',
'message' => '',
'media' => [],
'reply_to_msg_id' => 0,
'parse_mode' => 'HTML',
], $data);
return $this->MadelineProto->messages->sendMedia($data);
}
} }