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.4.tar.gz (17.6 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.4-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.4.tar.gz.

File metadata

  • Download URL: whatsupbraeker-0.1.4.tar.gz
  • Upload date:
  • Size: 17.6 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.4.tar.gz
Algorithm Hash digest
SHA256 a36af4f72274f734bc9335a779f2735552215a3101e69d99bd5e339643dde0fe
MD5 209c3b5e4792162d0c76414e73447918
BLAKE2b-256 39ec9b0054d66e728b86de5667fb00fd6ffbeca48c1b52f952b4f486673206ec

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for whatsupbraeker-0.1.4-cp39-cp39-macosx_15_0_universal2.whl
Algorithm Hash digest
SHA256 78e5f14b35a5f673607cecc422c32c31b9256704bd7c7932c4fd3f0630164fdb
MD5 b7604fb283315097548535dae2ae7f04
BLAKE2b-256 20ef45867ea7fc91ccc8cb91c80098441e00cd3ac9ed052463e329bf4913f53a

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