Skip to content
This repository has been archived by the owner on Jan 17, 2024. It is now read-only.
/ FunPayPHP Public archive

API для FunPay ботов на PHP для автовыдачи и.т.д

License

Notifications You must be signed in to change notification settings

TimLiz/FunPayPHP

Repository files navigation

FunPayPHP

Добро пожаловать в FunPay PHP! Эта библиотека позволяет удобно и легко создавать ботов для биржи FunPay

Этот API больше не будет обновляться.

Требования

1. PHP 8.1 или выше
2. Curl-extension PHP

Установка

Composer

composer require timliz/funpayphp

Первый бот

<?php
require_once ("vendor/autoload.php");

use run\messageRepository;
use run\run;

//Инициируем бота
$FunPay = new run();

//Добавляем прослушку события MESSAGE
$FunPay->on(Event::message, function (messageRepository $msg) {
    //Мы получили messageRepository от этого события

    //Отвечаем пользователю сообщением
    $msg->reply(\messageBuilder\messageBuilder::fastMessage("Hello world!"));
});

//Запускаем бота
$FunPay->run();

Пример выше отвечает Hello world! На сообщения.

Таймеры

Задержки

$FunPay->timers->addTimer(6, function () {
    //Код, который исполнится через 6 секунд
});

Циклы

$ID = $FunPay->timers->addRepeated(1, function () {
    //Код, который будет исполняться каждую 1 секунду
});

События

В основном примере вы видели пример события message, ниже я перечислю все события:

Сообщение

$FunPay->on(event::message, function (\run\messageRepository $msg) {
   //Код, исполняющийся при событии
});

Оплата

$FunPay->on(event::payment, function (\run\paymentRepository $payment) {
   //Код, исполняющийся при событии
});

Поднятие лота

$FunPay->on(event::lotRise, function () {
   //Код, исполняющийся при событии
});

Главный цикл

$FunPay->on(event::loop, function () {
   //Код, исполняющийся при событии
});

При готовности

$FunPay->on(event::ready, function () {
   //Код, исполняющийся при событии
});

Хранилище

paymentRepository & userRepository

Позволяет записывать данные для долгого хранения

Кастомный бесконечный цикл

Если вы хотите использовать API вместе с чем-то другим, что тоже запускает бесконечный цикл, используйте решение ниже

<?php
require_once("vendor/autoload.php");

use run\run;

//Инициируем бота
$FunPay = new run(array(
    run::SETTINGS_CUSTOM_LOOP => true
));

//Код бота тут


//Не забываем про запуск бота
$FunPay->run();


//Далее вам необходимо привязать метод loop() к циклу другого скрипта,
//В моём примере я просто использую свой бесконечный цикл

while (true) {
    $FunPay->timers->loop();
}

Редактирование лотов

<?php
require_once('vendor/autoload.php');

use run\lot;
use run\run;

//Инициируем бота
$FunPay = new run();

//Прослушиваем событие ready
$FunPay->on(event::ready, function () use ($FunPay) {
    //Получаем лот с id 13914382
    $lot = lot::getLot(13914382);
    
    //Ставим кол-во 10
    $lot->amount = 10;
    
    //Сохранение лота(отправка на сервер)
    $lot->save();
});

$FunPay->run();

Настройки

Если вы хотите, вы можете поменять некоторые настройки, укажите как массив как первый аргумент для конструктора класса run

$FunPay = new run(array(
    run::SETTINGS_DISABLE_LOT_RISE => true,
    run::SETTINGS_DISABLE_MESSAGE_CHECK => true,
    run::SETTINGS_GOLDEN_KEY => "Ваш ключ", 
));

Отключить обработку сообщений

run::SETTINGS_DISABLE_MESSAGE_CHECK

Отключить поднятие лотов

run::SETTINGS_DISABLE_LOT_RISE

Ручной ввод goldenkey

run::SETTINGS_GOLDEN_KEY

Отключить бесконечный цикл, вам прийдётся вызывать функцию loop() вручную см выше"

run::SETTINGS_CUSTOM_LOOP

Примечание

Авто поднятие и всегда онлайн работают, Остальные события вы можете найти в файле enums/event.php По любым вопросам можете писать в Discord(TimLiz#2952) или создавать issue

Удачи всем

Запланировано

() Добавить к paymentRepository метод getLotObjectTry2 который будет получать объект с помощью ссылки на таблицу на странице оплаты, в будующем заменит старый способ получения и будет всегда

About

API для FunPay ботов на PHP для автовыдачи и.т.д

Topics

Resources

License

Code of conduct

Stars

Watchers

Forks

Packages

No packages published

Languages