Автоматизация работы с FunPay
Project description
fpx
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 как оболочку над фреймворком с уже встроенными автоматизациями
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file fpx_engine-0.7.4.tar.gz.
File metadata
- Download URL: fpx_engine-0.7.4.tar.gz
- Upload date:
- Size: 43.0 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
94e9cf334facff2c5e513c53570ffcbdc9e5e2b5d34127251945d8d24169f741
|
|
| MD5 |
0bf3f80bb39f9f6b3cc3ed654cac26f2
|
|
| BLAKE2b-256 |
08610f2c68315709a575e2242ebcf4ac55a1d6463b299bdfa28a885216c20417
|
Provenance
The following attestation bundles were made for fpx_engine-0.7.4.tar.gz:
Publisher:
publish.yml on bymyforge/fpx
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
fpx_engine-0.7.4.tar.gz -
Subject digest:
94e9cf334facff2c5e513c53570ffcbdc9e5e2b5d34127251945d8d24169f741 - Sigstore transparency entry: 2113707974
- Sigstore integration time:
-
Permalink:
bymyforge/fpx@34871cc148511c33867e1dc93e4ba43ab3061dbe -
Branch / Tag:
refs/tags/v0.7.4 - Owner: https://github.com/bymyforge
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@34871cc148511c33867e1dc93e4ba43ab3061dbe -
Trigger Event:
release
-
Statement type:
File details
Details for the file fpx_engine-0.7.4-py3-none-any.whl.
File metadata
- Download URL: fpx_engine-0.7.4-py3-none-any.whl
- Upload date:
- Size: 57.1 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
6192d5ce4879332e8219107db0fc793fe66b58fa32163a0a00a2195755e9d77d
|
|
| MD5 |
9522abc32edab29204bfe3c4cce9e94f
|
|
| BLAKE2b-256 |
8af5226e86d138988ca42c578d0d9f95382e6b34eaafbf80fd3e5e457bcc45b7
|
Provenance
The following attestation bundles were made for fpx_engine-0.7.4-py3-none-any.whl:
Publisher:
publish.yml on bymyforge/fpx
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
fpx_engine-0.7.4-py3-none-any.whl -
Subject digest:
6192d5ce4879332e8219107db0fc793fe66b58fa32163a0a00a2195755e9d77d - Sigstore transparency entry: 2113708128
- Sigstore integration time:
-
Permalink:
bymyforge/fpx@34871cc148511c33867e1dc93e4ba43ab3061dbe -
Branch / Tag:
refs/tags/v0.7.4 - Owner: https://github.com/bymyforge
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@34871cc148511c33867e1dc93e4ba43ab3061dbe -
Trigger Event:
release
-
Statement type: