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.5.tar.gz (18.2 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.5-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.5.tar.gz.

File metadata

  • Download URL: whatsupbraeker-0.1.5.tar.gz
  • Upload date:
  • Size: 18.2 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.5.tar.gz
Algorithm Hash digest
SHA256 8d1a48a5d1a5023a7a79323070e0b054d68990f014c2c893c4092dc8d5dfe889
MD5 f17c7513777d0d4faa8565d79438e52b
BLAKE2b-256 5fc2a90e029e42bfcef3f08316d8d1aea9e5fd4c1d07801331e3b2dc055abefb

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for whatsupbraeker-0.1.5-cp39-cp39-macosx_15_0_universal2.whl
Algorithm Hash digest
SHA256 31d4ff90b411cbeb59764e92c26a991f8c0c84747a3f7ab1eeaea890d57609ad
MD5 a955da18f13551c756e78e1bc44bafbf
BLAKE2b-256 1b66b7bafe057151ad01d843d6caee63c7c8554945694404ed823f869b4fd827

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