destyk / lztcombine-php
LztCombine PHP - библиотека для программного использования ВСЕГО функционала форума
Requires
- php: >=7.0.0
- ext-v8js: *
- curl/curl: 1.9.*
README
Библиотека для программного использования ВСЕГО функционала форума lolz.guru
💥 Наконец, руки дошли обновить библиотеку :) 💥
Полезная информация
- 🔑 Установка библиотеки
- 🏷️ Builder
- 🏷️ Официальное API
- 📝 Как использовать?
- 📂 Доступные методы
- 📌 Метод threads/getList
- 📌 Метод threads/aboutOne
- 📌 Метод posts/getList
- 📌 Метод posts/create
- 📌 Метод posts/delete
- 📌 Метод posts/like
- 📌 Метод posts/unlike
- 📌 Метод users/find
- 📌 Метод users/getPosts
- 📌 Метод users/subscribe
- 📌 Метод users/unsubscribe
- 📌 Метод users/whoIAm
- 📌 Метод pages/getList
- 📌 Метод pages/aboutOne
- 📌 Метод notifications/getList
- 📌 Метод notifications/aboutOne
- 📌 Метод conversations/getList
- 📌 Метод conversations/create
- 📌 Метод conversations/delete
- 📌 Метод conversations/aboutOne
🔑 Установка библиотеки
Установить данную библиотеку можно с помощью composer:
composer require destyk/lztcombine-php
🏷️ Builder
С помощью builder'a Вы сможете выполнить абсолютно любой запрос к форуму словно так, будто Вы его совершили в своём браузере, минуя официальный API.
📝 Использование builder'a
⚠️ Важно! Для корректной работы builder'a, требуется установленное php-расширение V8Js
.
Инструкция по установке расширения на Ubuntu находится здесь.
Чтобы начать работу, Вам необходим параметр xf_user
.
Узнать как и где его получить можно здесь.
require('vendor/autoload.php'); use DestyK\LztPHP\Builder\Core\Request; use DestyK\LztPHP\Builder\Init; use DestyK\LztPHP\Exception; try { $builder = new Init('*xf_user*'); // Если на Вашем аккаунте включена двуфакторная система авторизации, то изначально стоит вызвать метод верификации // Подробнее об этом методе чуть ниже $builder->login()->verify2fa('*Одноразовый код*', '*Тип приложения*'); // Можно создать свой собственный метод. Например, добавить человека в список игнор-листа. $builder->createMethod('account/ignore', Request::POST, [ 'users' => 'BotFather,' ]); // Также есть возможность использовать методы, реализованные из "коробки". // Например, участвовать в конкурсе $threadId = 4120785; // Id темы с розыгрышем $builder->threads()->participate($threadId); } catch(\Exception $e) { echo $e->getMessage(); }
📂 Доступные методы builder'a
📌 Метод login/verify2fa
Позволяет пройти проверку системой 2FA.
⚠️ Важно! Этот метод стоит использовать единоразово, если появилось следующее сообщение при включенной системе двуфакторной авторизации: You need to call the method: $builder->login()->verify2fa(code, provider)
.
... // Проходим авторизацию с помощью системы 2FA $code = '2444332'; // Одноразовый код из приложения, Telegram или же с эл. почты $provider = 'totp'; // Тип приложения. Доступны значения: totp (приложение), telegram (Telegram) и email (эл. почта) $builder->login()->verify2fa($code, $provider);
После успешного прохождения авторизации, вызов этого метода лучше убрать, т.к. будет совершаться дополнительный лишний запрос к форуму.
📌 Метод createMethod
Позволяет создать абсолютно любой запрос к форуму lolzteam, минуя официальный API.
... // Для наглядности можем создать вручную метод threads/bump $threadId = 2444332; // ID Вашей темы, которую нужно поднять $builder->createMethod('threads/' . $threadId . '/bump', $builder::GET);
📌 💥 Метод threads/participate
Позволяет участвовать в конкурсе.
... $threadId = 2444332; // ID темы с конкурсом $builder->threads()->participate($threadId);
📌 Метод threads/bump
Позволяет поднять указанную тему (если она является Вашей).
... $threadId = 2444332; // ID Вашей темы, которую нужно поднять $builder->threads()->bump($threadId);
📌 Метод market/purchase
Попытка купить указанный аккаунт.
... $itemId = 2444332; // ID аккаунта, который нужно купить $price = 15; // Стоимость, за которую готовы совершить покупку $builder->market()->purchase($itemId, $price);
📌 Метод market/purchaseCheck
Проверяем купленный аккаунт на валид/невалид.
⚠️ Важно! Этот метод необходимо вызывать после market/purchase
... $itemId = 2444332; // ID аккаунта, который нужно проверить $builder->market()->purchaseCheck($itemId);
📌 Метод market/purchaseConfirm
Подтверждаем покупку и получаем купленный товар.
⚠️ Важно! Этот метод необходимо вызывать после market/purchaseCheck
... $itemId = 2444332; // ID аккаунта, покупку которого нужно подтвердить $builder->market()->purchaseConfirm($itemId);
📌 Метод market/paymentCreate
Создаёт новую заявку на пополнение счёта
... $amount = 50; // Сумма для пополнения $currency = 'rub'; // Валюта пополнения $method = 'P2PQiwi'; // Метод оплаты $builder->market()->paymentCreate($currency, $amount, $method);
📌 Метод market/paymentCheck
Проверяет поступление платежа по ранее созданной заявке.
... $orderId = 125531; // ID ранее созданной Вами заявки $builder->market()->paymentCheck($orderId);
🏷️ Официальное API
В отличие от builder'a, официальное API полностью одобрено администрацией проекта.
📝 Использование официального API
Чтобы начать работу, Вам необходимо получить access_token
.
Узнать как и где его получить можно здесь.
require('vendor/autoload.php'); use DestyK\LztPHP\API\Init; try { $api = new Init('*Ваш token*'); $result = $api->users()->whoIAm(); } catch(\Exception $e) { echo $e->getMessage(); }
📂 Доступные методы оф. API
📌 Метод threads/getList
Парсит темы с форума, исходя из указанных параметров.
... $threads = $api->threads()->getList([ 'page' => 2, 'limit' => 5 ]);
Подробнее о входящих/выходящих параметрах метода
📌 Метод threads/aboutOne
Парсит информацию об указанной теме.
... $threadId = 5000; // ID темы $thread = $api->threads()->aboutOne($threadId);
Подробнее о входящих/выходящих параметрах метода
📌 Метод posts/getList
Парсит посты из определённой темы, исходя из указанных параметров.
... $threads = $api->posts()->getList([ 'thread_id' => 26412, // ID темы 'page' => 1, 'limit' => 10 ]);
Подробнее о входящих/выходящих параметрах метода
📌 Метод posts/create
Создаёт новый пост в указанной теме.
... $threadId = 5000; // ID темы $postBody = 'Hello World'; // Содержимое поста $post = $api->posts()->create($threadId, $postBody, [ 'quote_post_id' => 12050 // Если передается, то threadId не обязателен ]);
Подробнее о входящих/выходящих параметрах метода
📌 Метод posts/delete
Удаляет созданный пост.
... $postId = 5000; // ID созданного поста $api->posts()->delete($postId, [ 'reason' => 'Так звёзды сошлись...' // Причина удаления ]);
Подробнее о входящих/выходящих параметрах метода
📌 Метод posts/like
Поставить лайк на указанный пост.
... $postId = 5000; // ID созданного поста $api->posts()->like($postId);
Подробнее о входящих/выходящих параметрах метода
📌 Метод posts/unlike
Убрать лайк с указанного поста.
... $postId = 5000; // ID созданного поста $api->posts()->unlike($postId);
Подробнее о входящих/выходящих параметрах метода
📌 Метод users/find
Парсит пользователей форума, исходя из указанных параметров.
... $users = $api->users()->getList([ 'username' => 'DestyK', // юзернейм 'user_email' => 'admin@mail.ru' // почта юзера ]);
Подробнее о входящих/выходящих параметрах метода
📌 Метод users/getPosts
Спрсить список постов пользователя.
... $userId = 14647; // ID пользователя $posts = $api->users()->getPosts($userId, [ 'page' => 1, 'limit' => 5 ]);
Подробнее о входящих/выходящих параметрах метода
📌 Метод users/subscribe
Оформляет подписку на указанного пользователя.
... $userId = 14647; // ID пользователя $api->users()->subscribe($userId);
Подробнее о входящих/выходящих параметрах метода
📌 Метод users/unsubscribe
Отменяет подписку на указанного пользователя.
... $userId = 14647; // ID пользователя $api->users()->unsubscribe($userId);
Подробнее о входящих/выходящих параметрах метода
📌 Метод users/whoIAm
Получить информацию о текущем токене.
... $info = $api->users()->whoIAm();
Подробнее о входящих/выходящих параметрах метода
📌 Метод pages/getList
Парсит разделы с форума, исходя из указанных параметров.
... $pages = $api->pages()->getList([ 'parent_page_id' => 2, // ID родительского раздела 'order' => 'natural' // Доступны значения: natural, list ]);
Подробнее о входящих/выходящих параметрах метода
📌 Метод pages/aboutOne
Парсит информацию об указанном разделе.
... $pageId = 2000; // ID раздела $pageInfo = $api->pages()->aboutOne($pageId);
Подробнее о входящих/выходящих параметрах метода
📌 Метод notifications/getList
Парсит оповещения пользователя.
... $notifications = $api->notifications()->getList();
Подробнее о входящих/выходящих параметрах метода
📌 Метод notifications/aboutOne
Получает содержимое оповещения.
... $notificationId = 2000; // ID оповещения $notificationInfo = $api->notifications()->aboutOne($notificationId);
Подробнее о входящих/выходящих параметрах метода
📌 Метод conversations/getList
Парсит личные сообщения, исходя из указанных параметров.
... $conversations = $api->conversations()->getList([ 'page' => 2, 'limit' => 5 ]);
Подробнее о входящих/выходящих параметрах метода
📌 Метод conversations/create
Создаёт новое личное сообщение.
... $conversationTitle = 'Привет, как дела?'; // Заголовок личного сообщения $recipients = '1252,3556,4361'; // ID пользователей через запятую $messageBody = 'Содержимое сообщения'; $conversation = $api->conversations()->create($conversationTitle, $recipients, $messageBody);
Подробнее о входящих/выходящих параметрах метода
📌 Метод conversations/delete
Удаляет личное сообщение.
... $conversationId = 7000; // ID личного сообщения $api->conversations()->delete($conversationId);
Подробнее о входящих/выходящих параметрах метода
📌 Метод conversations/aboutOne
Получить подробное содержимое личного сообщения.
... $conversationId = 7000; // ID личного сообщения $conversation = $api->conversations()->aboutOne($conversationId);