fpx - асинхронный фреймворк и библиотека для упрощения взаимодействия с funpay.com, с целью максимальной скорости и простоты входа
Оригинальный сайт не предоставляет публичного 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 как оболочку над фреймворком с уже встроенными автоматизациями