Skip to content

bymyforge/fpx

Repository files navigation

Python Version License

fpx

fpx - асинхронный фреймворк и библиотека для упрощения взаимодействия с funpay.com, с целью максимальной скорости и простоты входа

GitHub Read the Docs Telegram PyPI


Оригинальный сайт не предоставляет публичного API для разработчиков. Фреймворк написан в качестве исправления данной проблемы.

Особенности

  • В отличие от FunPayAPI фреймворк работает на декораторах, что сильно упрощает разработку
  • Стиль проекта сформирован из популярных фреймворков, таких как aiogram, fastapi, starlette
  • Очень простой код, ниже реализован пример

Установка

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

pip install fpx-engine  

Обновление библиотеки:

pip install -U fpx-engine

Пример использования

Получение нового сообщения и автоматический ответ на него:

import asyncio
from fpx import FunPayTools, types

async def main():
    # инициализируем аккаунт (golden_key и golden_seal - куки твоего аккаунта на funpay.com)
    fp = FunPayTools('golden_key', 'golden_seal')
    # ловим сообщение
    @fp.router.on_message()
    async def answer_message(message: types.Message):
        # отвечаем на сообщение
        await message.answer('Привет')
    #запускаем приём событий
    await fp.runner.start_polling(3, is_background=True)
    await fp.runner.idle()

if __name__ == '__main__':
    asyncio.run(main())

Архитектура

Как устроен приём событий

Из-за отсутсвтия вебхуков или подобной технологии на фанпей, fpx работает через polling, раз в заданное кол-во секунд делает несколько запросов на фанпей, а именно отслеживание сообщений, заказов, отзывов, демперов, записывает их в кеш и сравнивает новые данные со старыми, если находит отличие то вызывает хендлер.

Фильтры в хендлерах

Вместо ручной обработки есть возможность использовать множество встроенных фильтров, но при желании всё также можно добавить свой кастомный фильтр.
Пример:

@fp.router.on_message(text='start')
async def cmd_start(message: types.Message):
    await message.answer('На связи')

Отличия от других утилит

В отличие от коллег, fpx полностью асинхронный фреймворк, с максимальной простотой входа. У фреймворка есть полезные встроенные инструменты, в пример можно взять fp.router.message_commands() который регистрирует команды одной строчкой.

Экосистема

Вы можете использовать телеграм бот FunPayX как оболочку над фреймворком с уже встроенными автоматизациями

About

Асинхронный Python фреймворк для работы с FunPay, подобный aiogram и FastAPI. Инструмент автоматизации FunPay

Topics

Resources

License

Stars

11 stars

Watchers

1 watching

Forks

Packages

 
 
 

Contributors

Languages