feat(whatsapp): rewrite service using tulir/whatsmeow#1021
Open
Jakeyzerk wants to merge 15 commits into
Open
Conversation
Replaces the abandoned Rhymen/go-whatsapp with tulir/whatsmeow, which supports WhatsApp's current Multi-Device protocol. - Supports QR code and pairing code authentication - Session persisted via SQLite (modernc.org/sqlite, no CGO) - Implements notify.Notifier interface (Send, AddReceivers) - Adds Disconnect() and IsConnected() helpers - Thread-safe connection state tracking Closes nikoksr#274
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Replaces the abandoned
Rhymen/go-whatsappwithtulir/whatsmeowto support WhatsApp's current Multi-Device protocol. This fixes the broken WhatsApp service.Closes #274
Changes
modernc.org/sqlitefor CGO-free builds. Tested on Termux/AndroiddbPathis an explicit parameter in both login methods. No default file is creatednotify.NotifierwithSend(),AddReceivers()Disconnect()andIsConnected()for connection managementservice/whatsapp/README.mdwith new usage examplesNotes for Maintainer
Per discussion in #274,
dbPathis currently explicit. Awaiting decision on whether to add a default pathwhatsmeow.dbor keep it explicit to prevent unintended file creation.New()returns*Servicewithout error because the constructor cannot fail. Actual initialization happens lazily inLoginWithQRCodeorLoginWithPairingCode. Happy to change to(*Service, error)if consistency with other services is preferred.Testing
Tested manual login + send message on Android/Termux. Session reconnects correctly after process restart without re-authenticating.
Checklist