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 — максимальное время ожидания новых сообщений (дробное число секунд);
  • filter_chat — идентификатор чата (JID), который нужно слушать; если опущен, используется номер из аргумента phone;
  • include_from_me — возвращать ли собственные сообщения в выдаче (по умолчанию true).

Требования

  • 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.3.3.tar.gz (19.5 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.3.3-cp312-cp312-manylinux_2_39_x86_64.whl (11.9 MB view details)

Uploaded CPython 3.12manylinux: glibc 2.39+ x86-64

File details

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

File metadata

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

File hashes

Hashes for whatsupbraeker-0.3.3.tar.gz
Algorithm Hash digest
SHA256 c799af6b423553892770c4ecade820ac93cc1539e907e87bafede7318af90277
MD5 1b4b798e04d27f2177de004d952fb521
BLAKE2b-256 a9771b79acea81c06bdfca96fbb842178a07430c8b6f29ea5eddf96f8ec9f967

See more details on using hashes here.

File details

Details for the file whatsupbraeker-0.3.3-cp312-cp312-manylinux_2_39_x86_64.whl.

File metadata

File hashes

Hashes for whatsupbraeker-0.3.3-cp312-cp312-manylinux_2_39_x86_64.whl
Algorithm Hash digest
SHA256 c3dffeb8b195a81625a8c6d4b1de38bb2527507e4fc44a187e714574133a086a
MD5 cd87362b87914f55e09e5cd99a814c44
BLAKE2b-256 5ee379d4586404521abdc99ba261092802c4cabc2898f1d7bdab949ad5ca11fd

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