destyk/lztcombine-php

LztCombine PHP - 用于程序化使用论坛所有功能的库

2.0.31 2022-07-18 06:04 UTC

This package is auto-updated.

Last update: 2024-09-18 10:53:37 UTC


README

用于程序化使用论坛所有功能的库 lolz.guru

💥 终于,我有时间更新库了 :) 💥


Made with PHP Repo size issues Downloads Downloads

有用信息

🔑 安装库

可以使用 composer 安装此库

composer require destyk/lztcombine-php

🏷️ 构建器

使用构建器,您可以执行对论坛的任何请求,就像在浏览器中执行一样,而无需通过官方API。

📝 使用构建器

⚠️ 重要!为了构建器的正确工作,需要安装 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();
}

📂 构建器可用的方法

📌 方法 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

允许绕过官方API创建对lolzteam论坛的任何请求。

...

// Для наглядности можем создать вручную метод 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

与构建器不同,官方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);

关于方法输入/输出参数的详细信息