Skip to main content

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

whatsupbraeker-0.1.6.tar.gz (19.7 kB view details)

Uploaded Source

Built Distribution

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

whatsupbraeker-0.1.6-cp39-cp39-macosx_15_0_universal2.whl (5.4 MB view details)

Uploaded CPython 3.9macOS 15.0+ universal2 (ARM64, x86-64)

File details

Details for the file whatsupbraeker-0.1.6.tar.gz.

File metadata

  • Download URL: whatsupbraeker-0.1.6.tar.gz
  • Upload date:
  • Size: 19.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.9.6

File hashes

Hashes for whatsupbraeker-0.1.6.tar.gz
Algorithm Hash digest
SHA256 909a3923e8bdc4a28682b3114714dc06f8d8f14b9b7eb2b6d9a068b3e190e935
MD5 9419541354c877d07654f09c8a7d7181
BLAKE2b-256 63260de40983d0bef02923c08968ea14546c88d3f3ca68c1df6cb65a1f657c1d

See more details on using hashes here.

File details

Details for the file whatsupbraeker-0.1.6-cp39-cp39-macosx_15_0_universal2.whl.

File metadata

File hashes

Hashes for whatsupbraeker-0.1.6-cp39-cp39-macosx_15_0_universal2.whl
Algorithm Hash digest
SHA256 5103e517a0ceaf9f601d31b6094e4edeada3711523aa033b56d0152878dba8a5
MD5 1be4d6eef2b92c63bbe958c6c4f200ee
BLAKE2b-256 3d85460952722237e79910b6ad59a479e9a29473a7aa78e95dc73e9f1307631e

See more details on using hashes here.

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