Python bindings for the WhatsUpBraeker Go WhatsApp bridge.
Project description
What-s-up-braeker
Go-библиотека для работы с WhatsApp через whatsmeow. Пакет предоставляет минимальный API, пригодный для собственных Go-приложений и для использования через ctypes в Python.
Структура проекта
pkg/waclient— основная логика соединения, отправки и получения сообщений.cmd/wa-bridge— точка сборкиc-shared, экспортирующая функцииWaRunиWaFree.examples/python/client.py— пример вызова общей библиотеки из Python.main.go— демонстрация использования пакета напрямую из Go.
Использование в Go
go run ./main.go
Перед запуском задайте номер телефона и текст сообщения в main.go. При первой авторизации появится QR-код, который нужно отсканировать в WhatsApp.
Чтобы подключить библиотеку в другом проекте:
import "github.com/Alias1177/What-s-up-braeker/pkg/waclient"
Сборка динамической библиотеки
mkdir -p dist
go build -buildmode=c-shared -o dist/libwa.so ./cmd/wa-bridge
Команда создаст dist/libwa.so и заголовок dist/libwa.h. В средах с ограниченными правами на запись в глобальные кэши можно использовать локальные каталоги:
GOTOOLCHAIN=go1.24.0 \
GOMODCACHE=$PWD/.gomodcache \
GOCACHE=$PWD/.gocache \
go build -buildmode=c-shared -o dist/libwa.so ./cmd/wa-bridge
Пример на Python
После сборки библиотеки:
python3 examples/python/client.py \
--phone 79991234567 \
--message "Hello from Python!" \
--read-limit 5 \
--listen-seconds 8
Флаги --read-limit и --listen-seconds позволяют регулировать, сколько входящих сообщений будет собрано и как долго ждать отве
тов. Передайте --read-only, чтобы ничего не отправлять и просто прочитать чат. Флаг --lib позволяет указать путь к .so, а -- db-uri — строку подключения к SQLite с сохранённой сессией WhatsApp.
Использование в собственном скрипте Python
from pathlib import Path
from python import WhatsAppBridge
bridge = WhatsAppBridge(Path("dist/libwa.so"))
# Отправить сообщение и подождать до 3 ответов не дольше 15 секунд
response = bridge.send_message(
db_uri="file:whatsapp.db?_foreign_keys=on",
phone="79991234567",
text="Привет!",
read_limit=3,
listen_seconds=15,
)
# Только прочитать сообщения — будет использован JSON-пейлоад без текста
history = bridge.read_messages(
db_uri="file:whatsapp.db?_foreign_keys=on",
phone="79991234567",
read_limit=10,
)
Под капотом WhatsAppBridge формирует JSON-параметры для функции WaRun. Доступные поля:
send_text— текст сообщения, который нужно отправить (если опущен, работает режим чтения);read_limit— сколько входящих сообщений вернуть (по умолчанию библиотека берёт разумное значение);listen_seconds— максимальное время ожидания новых сообщений (дробное число секунд).
Требования
- Go 1.24+ (для зависимостей
whatsmeow); - база WhatsApp (
whatsapp.db) рядом с бинарём; - Python 3.8+ (для примера).
Примечания
- В
pkg/waclient.Configможно управлять тайм-аутами, логами и выводом QR. WaRunвозвращает JSON со статусом, ID отправленного сообщения, собранными в сессии сообщениями и флагомrequires_qr.- При необходимости можно передать JSON-строку напрямую в
message(например,{"send_text":"hi","read_limit":5}).
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
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 whatsupbraeker-0.1.9.tar.gz.
File metadata
- Download URL: whatsupbraeker-0.1.9.tar.gz
- Upload date:
- Size: 17.4 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.9.6
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
ca68f2d77f8c21ed09a5313fc6fcc2aab381668e044762efbca7e21474639fec
|
|
| MD5 |
abbf906ee69823aa3d6919e7992d5834
|
|
| BLAKE2b-256 |
4bf9929289054150fe95c8f4c12bae7d124d6e91aa90abf4c4f1c950f05dc401
|
File details
Details for the file whatsupbraeker-0.1.9-cp39-cp39-macosx_15_0_universal2.whl.
File metadata
- Download URL: whatsupbraeker-0.1.9-cp39-cp39-macosx_15_0_universal2.whl
- Upload date:
- Size: 5.4 MB
- Tags: CPython 3.9, macOS 15.0+ universal2 (ARM64, x86-64)
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.9.6
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
6fd06393dba6c58744f0a78701316d7c1f4d6bba3f0eeadecaf1a3e48049d39e
|
|
| MD5 |
5576ef9095ec25323b19deaab05a9cae
|
|
| BLAKE2b-256 |
18d809c4dea897282b046dc8cccb4c92283b5afacc3e1a29ddf3cf4df7da7d7a
|