destyk/lztcombine-php

LztCombine PHP - библиотека для программного использования ВСЕГО функционала форума

2.0.31 2022-07-18 06:04 UTC

This package is auto-updated.

Last update: 2024-04-18 10:02:46 UTC


README

Библиотека для программного использования ВСЕГО функционала форума lolz.guru

💥 Наконец, руки дошли обновить библиотеку :) 💥


Made with PHP Repo size issues Downloads Downloads

Полезная информация

🔑 Установка библиотеки

Установить данную библиотеку можно с помощью 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);

Подробнее о входящих/выходящих параметрах метода