Skip to main content

Автоматизация работы с FunPay

Project description

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 как оболочку над фреймворком с уже встроенными автоматизациями

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

fpx_engine-0.7.2.tar.gz (41.6 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

fpx_engine-0.7.2-py3-none-any.whl (55.1 kB view details)

Uploaded Python 3

File details

Details for the file fpx_engine-0.7.2.tar.gz.

File metadata

  • Download URL: fpx_engine-0.7.2.tar.gz
  • Upload date:
  • Size: 41.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for fpx_engine-0.7.2.tar.gz
Algorithm Hash digest
SHA256 0c5eba0998a333b9709552335dbc9c84ebab9a44706431d1c1efb55b621a5faf
MD5 122b1ad6bc42f17d92ed5018222e2fe9
BLAKE2b-256 92eec21eb7443b5557ec948b8ebfe8ac6306ee2ec821a4aa15b1bab0b22fc018

See more details on using hashes here.

Provenance

The following attestation bundles were made for fpx_engine-0.7.2.tar.gz:

Publisher: publish.yml on bymyforge/fpx

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file fpx_engine-0.7.2-py3-none-any.whl.

File metadata

  • Download URL: fpx_engine-0.7.2-py3-none-any.whl
  • Upload date:
  • Size: 55.1 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for fpx_engine-0.7.2-py3-none-any.whl
Algorithm Hash digest
SHA256 c5722fc2948beb62df10a6536f5fa5367aa5d61768f2f3f21ab51f43ddd1b532
MD5 6771ae1f8a9b00c1d1b78cde5bf6cf62
BLAKE2b-256 564f99124eaf86aa77001ffd44cbc117f8abd637bd103fe3672fe7109a95da77

See more details on using hashes here.

Provenance

The following attestation bundles were made for fpx_engine-0.7.2-py3-none-any.whl:

Publisher: publish.yml on bymyforge/fpx

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page