slidge-whatsapp 0.2.5__cp311-cp311-manylinux_2_36_aarch64.whl → 0.3.0b0__cp311-cp311-manylinux_2_36_aarch64.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Potentially problematic release.
This version of slidge-whatsapp might be problematic. Click here for more details.
- slidge_whatsapp/config.py +3 -0
- slidge_whatsapp/contact.py +13 -3
- slidge_whatsapp/event.go +135 -60
- slidge_whatsapp/gateway.go +16 -68
- slidge_whatsapp/gateway.py +4 -5
- slidge_whatsapp/generated/_whatsapp.cpython-311-aarch64-linux-gnu.h +198 -181
- slidge_whatsapp/generated/_whatsapp.cpython-311-aarch64-linux-gnu.so +0 -0
- slidge_whatsapp/generated/build.py +166 -152
- slidge_whatsapp/generated/whatsapp.c +1804 -1532
- slidge_whatsapp/generated/whatsapp.go +1150 -1039
- slidge_whatsapp/generated/whatsapp.py +1243 -1118
- slidge_whatsapp/generated/whatsapp_go.h +198 -181
- slidge_whatsapp/go.mod +21 -15
- slidge_whatsapp/go.sum +49 -31
- slidge_whatsapp/group.py +34 -30
- slidge_whatsapp/media/media.go +22 -12
- slidge_whatsapp/session.go +105 -81
- slidge_whatsapp/session.py +46 -14
- slidge_whatsapp/vendor/github.com/beeper/argo-go/LICENSE +9 -0
- slidge_whatsapp/vendor/github.com/beeper/argo-go/block/blockreader.go +329 -0
- slidge_whatsapp/vendor/github.com/beeper/argo-go/block/blockwriter.go +417 -0
- slidge_whatsapp/vendor/github.com/beeper/argo-go/codec/decoder.go +652 -0
- slidge_whatsapp/vendor/github.com/beeper/argo-go/codec/encoder.go +985 -0
- slidge_whatsapp/vendor/github.com/beeper/argo-go/header/header.go +135 -0
- slidge_whatsapp/vendor/github.com/beeper/argo-go/internal/util/util.go +133 -0
- slidge_whatsapp/vendor/github.com/beeper/argo-go/label/label.go +384 -0
- slidge_whatsapp/vendor/github.com/beeper/argo-go/label/wiremarkers.go +37 -0
- slidge_whatsapp/vendor/github.com/beeper/argo-go/pkg/bitset/bitset.go +197 -0
- slidge_whatsapp/vendor/github.com/beeper/argo-go/pkg/buf/buf.go +420 -0
- slidge_whatsapp/vendor/github.com/beeper/argo-go/pkg/varint/varint.go +246 -0
- slidge_whatsapp/vendor/github.com/beeper/argo-go/wire/wire.go +614 -0
- slidge_whatsapp/vendor/github.com/beeper/argo-go/wirecodec/decode.go +341 -0
- slidge_whatsapp/vendor/github.com/ebitengine/purego/dlfcn.go +4 -4
- slidge_whatsapp/vendor/github.com/ebitengine/purego/dlfcn_darwin.go +0 -5
- slidge_whatsapp/vendor/github.com/ebitengine/purego/internal/fakecgo/go_libinit.go +3 -0
- slidge_whatsapp/vendor/github.com/ebitengine/purego/internal/fakecgo/symbols.go +40 -20
- slidge_whatsapp/vendor/github.com/elliotchance/orderedmap/v3/LICENSE +21 -0
- slidge_whatsapp/vendor/github.com/elliotchance/orderedmap/v3/list.go +95 -0
- slidge_whatsapp/vendor/github.com/elliotchance/orderedmap/v3/orderedmap.go +187 -0
- slidge_whatsapp/vendor/github.com/gen2brain/go-fitz/fitz.go +1 -0
- slidge_whatsapp/vendor/github.com/gen2brain/go-fitz/fitz_cgo.go +3 -0
- slidge_whatsapp/vendor/github.com/gen2brain/go-fitz/fitz_nocgo.go +4 -5
- slidge_whatsapp/vendor/github.com/gen2brain/go-fitz/purego_darwin.go +11 -1
- slidge_whatsapp/vendor/github.com/gen2brain/go-fitz/purego_linux.go +10 -0
- slidge_whatsapp/vendor/github.com/gen2brain/go-fitz/purego_windows.go +12 -0
- slidge_whatsapp/vendor/github.com/jupiterrider/ffi/.gitignore +0 -2
- slidge_whatsapp/vendor/github.com/jupiterrider/ffi/CHANGELOG.md +44 -1
- slidge_whatsapp/vendor/github.com/jupiterrider/ffi/COPYRIGHT.txt +6 -1
- slidge_whatsapp/vendor/github.com/jupiterrider/ffi/README.md +14 -17
- slidge_whatsapp/vendor/github.com/jupiterrider/ffi/abi.go +1 -1
- slidge_whatsapp/vendor/github.com/jupiterrider/ffi/abi2.go +7 -0
- slidge_whatsapp/vendor/github.com/jupiterrider/ffi/assets/libffi/LICENSE +21 -0
- slidge_whatsapp/vendor/github.com/jupiterrider/ffi/assets/libffi/darwin_amd64/libffi.8.dylib +0 -0
- slidge_whatsapp/vendor/github.com/jupiterrider/ffi/assets/libffi/darwin_arm64/libffi.8.dylib +0 -0
- slidge_whatsapp/vendor/github.com/jupiterrider/ffi/assets/libffi/windows_amd64/libffi-8.dll +0 -0
- slidge_whatsapp/vendor/github.com/jupiterrider/ffi/cif.go +15 -0
- slidge_whatsapp/vendor/github.com/jupiterrider/ffi/cif_arm64.go +16 -0
- slidge_whatsapp/vendor/github.com/jupiterrider/ffi/embed.go +49 -0
- slidge_whatsapp/vendor/github.com/jupiterrider/ffi/embed_darwin_amd64.go +10 -0
- slidge_whatsapp/vendor/github.com/jupiterrider/ffi/embed_darwin_arm64.go +10 -0
- slidge_whatsapp/vendor/github.com/jupiterrider/ffi/embed_windows_amd64.go +10 -0
- slidge_whatsapp/vendor/github.com/jupiterrider/ffi/ffi.go +53 -15
- slidge_whatsapp/vendor/github.com/jupiterrider/ffi/fun.go +10 -2
- slidge_whatsapp/vendor/github.com/jupiterrider/ffi/init.go +22 -9
- slidge_whatsapp/vendor/github.com/jupiterrider/ffi/lib.go +1 -1
- slidge_whatsapp/vendor/github.com/jupiterrider/ffi/lib_unix.go +1 -1
- slidge_whatsapp/vendor/github.com/jupiterrider/ffi/lib_windows.go +1 -1
- slidge_whatsapp/vendor/github.com/mattn/go-sqlite3/README.md +4 -7
- slidge_whatsapp/vendor/github.com/mattn/go-sqlite3/callback.go +2 -1
- slidge_whatsapp/vendor/github.com/mattn/go-sqlite3/sqlite3-binding.c +11545 -6680
- slidge_whatsapp/vendor/github.com/mattn/go-sqlite3/sqlite3-binding.h +527 -273
- slidge_whatsapp/vendor/github.com/mattn/go-sqlite3/sqlite3.go +57 -23
- slidge_whatsapp/vendor/github.com/mattn/go-sqlite3/sqlite3_opt_unlock_notify.c +4 -0
- slidge_whatsapp/vendor/github.com/mattn/go-sqlite3/sqlite3_opt_unlock_notify.go +4 -0
- slidge_whatsapp/vendor/github.com/mattn/go-sqlite3/sqlite3_opt_userauth.go +13 -140
- slidge_whatsapp/vendor/github.com/mattn/go-sqlite3/sqlite3ext.h +4 -0
- slidge_whatsapp/vendor/github.com/petermattis/goid/.gitignore +4 -0
- slidge_whatsapp/vendor/github.com/petermattis/goid/LICENSE +202 -0
- slidge_whatsapp/vendor/github.com/petermattis/goid/README.md +4 -0
- slidge_whatsapp/vendor/github.com/petermattis/goid/goid.go +35 -0
- slidge_whatsapp/vendor/github.com/petermattis/goid/goid_gccgo.go +26 -0
- slidge_whatsapp/vendor/github.com/petermattis/goid/goid_go1.3.c +23 -0
- slidge_whatsapp/vendor/github.com/petermattis/goid/goid_go1.3.go +22 -0
- slidge_whatsapp/vendor/github.com/petermattis/goid/goid_go1.4.go +35 -0
- slidge_whatsapp/vendor/github.com/petermattis/goid/goid_go1.4.s +18 -0
- slidge_whatsapp/vendor/github.com/petermattis/goid/goid_go1.5.go +28 -0
- slidge_whatsapp/vendor/github.com/petermattis/goid/goid_go1.5.s +44 -0
- slidge_whatsapp/vendor/github.com/petermattis/goid/goid_slow.go +24 -0
- slidge_whatsapp/vendor/github.com/petermattis/goid/runtime_gccgo_go1.8.go +17 -0
- slidge_whatsapp/vendor/github.com/petermattis/goid/runtime_go1.23.go +38 -0
- slidge_whatsapp/vendor/github.com/petermattis/goid/runtime_go1.25.go +37 -0
- slidge_whatsapp/vendor/github.com/petermattis/goid/runtime_go1.5.go +57 -0
- slidge_whatsapp/vendor/github.com/petermattis/goid/runtime_go1.6.go +43 -0
- slidge_whatsapp/vendor/github.com/petermattis/goid/runtime_go1.9.go +37 -0
- slidge_whatsapp/vendor/github.com/rs/zerolog/CONTRIBUTING.md +43 -0
- slidge_whatsapp/vendor/github.com/rs/zerolog/README.md +31 -0
- slidge_whatsapp/vendor/github.com/rs/zerolog/console.go +20 -5
- slidge_whatsapp/vendor/github.com/rs/zerolog/log/log.go +131 -0
- slidge_whatsapp/vendor/github.com/rs/zerolog/log.go +1 -1
- slidge_whatsapp/vendor/github.com/rs/zerolog/sampler.go +4 -1
- slidge_whatsapp/vendor/github.com/rs/zerolog/writer.go +9 -0
- slidge_whatsapp/vendor/github.com/vektah/gqlparser/v2/LICENSE +19 -0
- slidge_whatsapp/vendor/github.com/vektah/gqlparser/v2/ast/argmap.go +37 -0
- slidge_whatsapp/vendor/github.com/vektah/gqlparser/v2/ast/collections.go +148 -0
- slidge_whatsapp/vendor/github.com/vektah/gqlparser/v2/ast/comment.go +31 -0
- slidge_whatsapp/vendor/github.com/vektah/gqlparser/v2/ast/decode.go +216 -0
- slidge_whatsapp/vendor/github.com/vektah/gqlparser/v2/ast/definition.go +110 -0
- slidge_whatsapp/vendor/github.com/vektah/gqlparser/v2/ast/directive.go +43 -0
- slidge_whatsapp/vendor/github.com/vektah/gqlparser/v2/ast/document.go +89 -0
- slidge_whatsapp/vendor/github.com/vektah/gqlparser/v2/ast/dumper.go +159 -0
- slidge_whatsapp/vendor/github.com/vektah/gqlparser/v2/ast/fragment.go +41 -0
- slidge_whatsapp/vendor/github.com/vektah/gqlparser/v2/ast/operation.go +32 -0
- slidge_whatsapp/vendor/github.com/vektah/gqlparser/v2/ast/path.go +72 -0
- slidge_whatsapp/vendor/github.com/vektah/gqlparser/v2/ast/selection.go +41 -0
- slidge_whatsapp/vendor/github.com/vektah/gqlparser/v2/ast/source.go +19 -0
- slidge_whatsapp/vendor/github.com/vektah/gqlparser/v2/ast/type.go +68 -0
- slidge_whatsapp/vendor/github.com/vektah/gqlparser/v2/ast/value.go +122 -0
- slidge_whatsapp/vendor/go.mau.fi/libsignal/groups/GroupCipher.go +17 -6
- slidge_whatsapp/vendor/go.mau.fi/libsignal/groups/GroupSessionBuilder.go +17 -7
- slidge_whatsapp/vendor/go.mau.fi/libsignal/groups/state/store/SenderKeyStore.go +4 -2
- slidge_whatsapp/vendor/go.mau.fi/libsignal/keys/chain/ChainKey.go +1 -0
- slidge_whatsapp/vendor/go.mau.fi/libsignal/keys/identity/IdentityKey.go +1 -0
- slidge_whatsapp/vendor/go.mau.fi/libsignal/logger/DefaultLogger.go +2 -2
- slidge_whatsapp/vendor/go.mau.fi/libsignal/serialize/FingerprintProtocol.pb.go +3 -2
- slidge_whatsapp/vendor/go.mau.fi/libsignal/serialize/LocalStorageProtocol.pb.go +3 -2
- slidge_whatsapp/vendor/go.mau.fi/libsignal/serialize/WhisperTextProtocol.pb.go +3 -2
- slidge_whatsapp/vendor/go.mau.fi/libsignal/session/Session.go +41 -17
- slidge_whatsapp/vendor/go.mau.fi/libsignal/session/SessionCipher.go +64 -30
- slidge_whatsapp/vendor/go.mau.fi/libsignal/state/store/IdentityKeyStore.go +5 -3
- slidge_whatsapp/vendor/go.mau.fi/libsignal/state/store/MessageKeyStore.go +6 -4
- slidge_whatsapp/vendor/go.mau.fi/libsignal/state/store/PreKeyStore.go +6 -4
- slidge_whatsapp/vendor/go.mau.fi/libsignal/state/store/SessionStore.go +8 -6
- slidge_whatsapp/vendor/go.mau.fi/libsignal/state/store/SignedPreKeyStore.go +7 -5
- slidge_whatsapp/vendor/go.mau.fi/util/dbutil/connlog.go +257 -0
- slidge_whatsapp/vendor/go.mau.fi/util/dbutil/database.go +309 -0
- slidge_whatsapp/vendor/go.mau.fi/util/dbutil/iter.go +233 -0
- slidge_whatsapp/vendor/go.mau.fi/util/dbutil/json.go +47 -0
- slidge_whatsapp/vendor/go.mau.fi/util/dbutil/log.go +129 -0
- slidge_whatsapp/vendor/go.mau.fi/util/dbutil/massinsert.go +164 -0
- slidge_whatsapp/vendor/go.mau.fi/util/dbutil/queryhelper.go +137 -0
- slidge_whatsapp/vendor/go.mau.fi/util/dbutil/reflectscan.go +30 -0
- slidge_whatsapp/vendor/go.mau.fi/util/dbutil/transaction.go +180 -0
- slidge_whatsapp/vendor/go.mau.fi/util/dbutil/upgrades.go +250 -0
- slidge_whatsapp/vendor/go.mau.fi/util/dbutil/upgradetable.go +331 -0
- slidge_whatsapp/vendor/go.mau.fi/util/exerrors/dualerror.go +33 -0
- slidge_whatsapp/vendor/go.mau.fi/util/exerrors/must.go +23 -0
- slidge_whatsapp/vendor/go.mau.fi/util/exhttp/cors.go +32 -0
- slidge_whatsapp/vendor/go.mau.fi/util/exhttp/handleerrors.go +98 -0
- slidge_whatsapp/vendor/go.mau.fi/util/exhttp/json.go +36 -0
- slidge_whatsapp/vendor/go.mau.fi/util/exhttp/middleware.go +30 -0
- slidge_whatsapp/vendor/go.mau.fi/util/exhttp/networkerror.go +38 -0
- slidge_whatsapp/vendor/go.mau.fi/util/exstrings/stringutil.go +104 -0
- slidge_whatsapp/vendor/go.mau.fi/util/exsync/event.go +104 -0
- slidge_whatsapp/vendor/go.mau.fi/util/exsync/returnonce.go +25 -0
- slidge_whatsapp/vendor/go.mau.fi/util/exsync/ringbuffer.go +139 -0
- slidge_whatsapp/vendor/go.mau.fi/util/exsync/syncmap.go +94 -0
- slidge_whatsapp/vendor/go.mau.fi/util/exsync/syncset.go +136 -0
- slidge_whatsapp/vendor/go.mau.fi/util/exzerolog/callermarshal.go +28 -0
- slidge_whatsapp/vendor/go.mau.fi/util/exzerolog/defaults.go +32 -0
- slidge_whatsapp/vendor/go.mau.fi/util/exzerolog/generics.go +45 -0
- slidge_whatsapp/vendor/go.mau.fi/util/exzerolog/writer.go +81 -0
- slidge_whatsapp/vendor/go.mau.fi/util/ptr/ptr.go +43 -0
- slidge_whatsapp/vendor/go.mau.fi/whatsmeow/.pre-commit-config.yaml +3 -3
- slidge_whatsapp/vendor/go.mau.fi/whatsmeow/appstate/decode.go +27 -26
- slidge_whatsapp/vendor/go.mau.fi/whatsmeow/appstate/encode.go +4 -3
- slidge_whatsapp/vendor/go.mau.fi/whatsmeow/appstate/hash.go +1 -1
- slidge_whatsapp/vendor/go.mau.fi/whatsmeow/appstate/keys.go +5 -4
- slidge_whatsapp/vendor/go.mau.fi/whatsmeow/appstate.go +32 -26
- slidge_whatsapp/vendor/go.mau.fi/whatsmeow/argo/argo-wire-type-store.argo +63 -0
- slidge_whatsapp/vendor/go.mau.fi/whatsmeow/argo/argo.go +62 -0
- slidge_whatsapp/vendor/go.mau.fi/whatsmeow/argo/name-to-queryids.json +306 -0
- slidge_whatsapp/vendor/go.mau.fi/whatsmeow/armadillomessage.go +42 -8
- slidge_whatsapp/vendor/go.mau.fi/whatsmeow/binary/encoder.go +1 -1
- slidge_whatsapp/vendor/go.mau.fi/whatsmeow/broadcast.go +5 -4
- slidge_whatsapp/vendor/go.mau.fi/whatsmeow/call.go +2 -1
- slidge_whatsapp/vendor/go.mau.fi/whatsmeow/client.go +134 -55
- slidge_whatsapp/vendor/go.mau.fi/whatsmeow/connectionevents.go +34 -11
- slidge_whatsapp/vendor/go.mau.fi/whatsmeow/download-to-file.go +63 -30
- slidge_whatsapp/vendor/go.mau.fi/whatsmeow/download.go +78 -34
- slidge_whatsapp/vendor/go.mau.fi/whatsmeow/errors.go +4 -0
- slidge_whatsapp/vendor/go.mau.fi/whatsmeow/group.go +157 -55
- slidge_whatsapp/vendor/go.mau.fi/whatsmeow/internals.go +202 -154
- slidge_whatsapp/vendor/go.mau.fi/whatsmeow/keepalive.go +3 -2
- slidge_whatsapp/vendor/go.mau.fi/whatsmeow/mediaconn.go +5 -3
- slidge_whatsapp/vendor/go.mau.fi/whatsmeow/mediaretry.go +2 -1
- slidge_whatsapp/vendor/go.mau.fi/whatsmeow/message.go +448 -138
- slidge_whatsapp/vendor/go.mau.fi/whatsmeow/msgsecret.go +106 -31
- slidge_whatsapp/vendor/go.mau.fi/whatsmeow/newsletter.go +83 -7
- slidge_whatsapp/vendor/go.mau.fi/whatsmeow/notification.go +83 -43
- slidge_whatsapp/vendor/go.mau.fi/whatsmeow/pair-code.go +9 -6
- slidge_whatsapp/vendor/go.mau.fi/whatsmeow/pair.go +42 -18
- slidge_whatsapp/vendor/go.mau.fi/whatsmeow/prekeys.go +9 -5
- slidge_whatsapp/vendor/go.mau.fi/whatsmeow/presence.go +17 -7
- slidge_whatsapp/vendor/go.mau.fi/whatsmeow/privacysettings.go +10 -11
- slidge_whatsapp/vendor/go.mau.fi/whatsmeow/proto/extra.go +7 -0
- slidge_whatsapp/vendor/go.mau.fi/whatsmeow/proto/instamadilloAddMessage/InstamadilloAddMessage.pb.go +983 -0
- slidge_whatsapp/vendor/go.mau.fi/whatsmeow/proto/instamadilloAddMessage/InstamadilloAddMessage.proto +85 -0
- slidge_whatsapp/vendor/go.mau.fi/whatsmeow/proto/instamadilloAddMessage/extra.go +3 -0
- slidge_whatsapp/vendor/go.mau.fi/whatsmeow/proto/instamadilloCoreTypeActionLog/InstamadilloCoreTypeActionLog.pb.go +197 -0
- slidge_whatsapp/vendor/go.mau.fi/whatsmeow/proto/instamadilloCoreTypeActionLog/InstamadilloCoreTypeActionLog.proto +13 -0
- slidge_whatsapp/vendor/go.mau.fi/whatsmeow/proto/instamadilloCoreTypeAdminMessage/InstamadilloCoreTypeAdminMessage.pb.go +279 -0
- slidge_whatsapp/vendor/go.mau.fi/whatsmeow/proto/instamadilloCoreTypeAdminMessage/InstamadilloCoreTypeAdminMessage.proto +21 -0
- slidge_whatsapp/vendor/go.mau.fi/whatsmeow/proto/instamadilloCoreTypeCollection/InstamadilloCoreTypeCollection.pb.go +137 -0
- slidge_whatsapp/vendor/go.mau.fi/whatsmeow/proto/instamadilloCoreTypeCollection/InstamadilloCoreTypeCollection.proto +10 -0
- slidge_whatsapp/vendor/go.mau.fi/whatsmeow/proto/instamadilloCoreTypeLink/InstamadilloCoreTypeLink.pb.go +313 -0
- slidge_whatsapp/vendor/go.mau.fi/whatsmeow/proto/instamadilloCoreTypeLink/InstamadilloCoreTypeLink.proto +27 -0
- slidge_whatsapp/vendor/go.mau.fi/whatsmeow/proto/instamadilloCoreTypeMedia/InstamadilloCoreTypeMedia.pb.go +1299 -0
- slidge_whatsapp/vendor/go.mau.fi/whatsmeow/proto/instamadilloCoreTypeMedia/InstamadilloCoreTypeMedia.proto +112 -0
- slidge_whatsapp/vendor/go.mau.fi/whatsmeow/proto/instamadilloCoreTypeText/InstamadilloCoreTypeText.pb.go +514 -0
- slidge_whatsapp/vendor/go.mau.fi/whatsmeow/proto/instamadilloCoreTypeText/InstamadilloCoreTypeText.proto +47 -0
- slidge_whatsapp/vendor/go.mau.fi/whatsmeow/proto/instamadilloDeleteMessage/InstamadilloDeleteMessage.pb.go +123 -0
- slidge_whatsapp/vendor/go.mau.fi/whatsmeow/proto/instamadilloDeleteMessage/InstamadilloDeleteMessage.proto +7 -0
- slidge_whatsapp/vendor/go.mau.fi/whatsmeow/proto/instamadilloDeleteMessage/extra.go +3 -0
- slidge_whatsapp/vendor/go.mau.fi/whatsmeow/proto/instamadilloSupplementMessage/InstamadilloSupplementMessage.pb.go +720 -0
- slidge_whatsapp/vendor/go.mau.fi/whatsmeow/proto/instamadilloSupplementMessage/InstamadilloSupplementMessage.proto +59 -0
- slidge_whatsapp/vendor/go.mau.fi/whatsmeow/proto/instamadilloSupplementMessage/extra.go +3 -0
- slidge_whatsapp/vendor/go.mau.fi/whatsmeow/proto/instamadilloTransportPayload/InstamadilloTransportPayload.pb.go +365 -0
- slidge_whatsapp/vendor/go.mau.fi/whatsmeow/proto/instamadilloTransportPayload/InstamadilloTransportPayload.proto +33 -0
- slidge_whatsapp/vendor/go.mau.fi/whatsmeow/proto/instamadilloXmaContentRef/InstamadilloXmaContentRef.pb.go +1238 -0
- slidge_whatsapp/vendor/go.mau.fi/whatsmeow/proto/instamadilloXmaContentRef/InstamadilloXmaContentRef.proto +105 -0
- slidge_whatsapp/vendor/go.mau.fi/whatsmeow/proto/waAdv/WAAdv.pb.go +39 -9
- slidge_whatsapp/vendor/go.mau.fi/whatsmeow/proto/waArmadilloApplication/WAArmadilloApplication.pb.go +354 -175
- slidge_whatsapp/vendor/go.mau.fi/whatsmeow/proto/waArmadilloApplication/WAArmadilloApplication.proto +5 -5
- slidge_whatsapp/vendor/go.mau.fi/whatsmeow/proto/waArmadilloXMA/WAArmadilloXMA.pb.go +170 -15
- slidge_whatsapp/vendor/go.mau.fi/whatsmeow/proto/waArmadilloXMA/WAArmadilloXMA.proto +4 -0
- slidge_whatsapp/vendor/go.mau.fi/whatsmeow/proto/waBotMetadata/WABotMetadata.pb.go +5156 -0
- slidge_whatsapp/vendor/go.mau.fi/whatsmeow/proto/waBotMetadata/WABotMetadata.proto +516 -0
- slidge_whatsapp/vendor/go.mau.fi/whatsmeow/proto/waCert/WACert.pb.go +29 -9
- slidge_whatsapp/vendor/go.mau.fi/whatsmeow/proto/waChatLockSettings/WAProtobufsChatLockSettings.pb.go +13 -9
- slidge_whatsapp/vendor/go.mau.fi/whatsmeow/proto/waCommon/WACommon.pb.go +344 -31
- slidge_whatsapp/vendor/go.mau.fi/whatsmeow/proto/waCommon/WACommon.proto +26 -0
- slidge_whatsapp/vendor/go.mau.fi/whatsmeow/proto/waCompanionReg/{WAWebProtobufsCompanionReg.pb.go → WACompanionReg.pb.go} +211 -89
- slidge_whatsapp/vendor/go.mau.fi/whatsmeow/proto/waCompanionReg/{WAWebProtobufsCompanionReg.proto → WACompanionReg.proto} +5 -1
- slidge_whatsapp/vendor/go.mau.fi/whatsmeow/proto/waConsumerApplication/WAConsumerApplication.pb.go +173 -9
- slidge_whatsapp/vendor/go.mau.fi/whatsmeow/proto/waDeviceCapabilities/WAProtobufsDeviceCapabilities.pb.go +78 -16
- slidge_whatsapp/vendor/go.mau.fi/whatsmeow/proto/waDeviceCapabilities/WAProtobufsDeviceCapabilities.proto +5 -0
- slidge_whatsapp/vendor/go.mau.fi/whatsmeow/proto/waE2E/WAWebProtobufsE2E.pb.go +7463 -5180
- slidge_whatsapp/vendor/go.mau.fi/whatsmeow/proto/waE2E/WAWebProtobufsE2E.proto +366 -343
- slidge_whatsapp/vendor/go.mau.fi/whatsmeow/proto/waHistorySync/WAWebProtobufsHistorySync.pb.go +485 -135
- slidge_whatsapp/vendor/go.mau.fi/whatsmeow/proto/waHistorySync/WAWebProtobufsHistorySync.proto +17 -0
- slidge_whatsapp/vendor/go.mau.fi/whatsmeow/proto/waLidMigrationSyncPayload/WAWebProtobufLidMigrationSyncPayload.pb.go +198 -0
- slidge_whatsapp/vendor/go.mau.fi/whatsmeow/proto/waLidMigrationSyncPayload/WAWebProtobufLidMigrationSyncPayload.proto +14 -0
- slidge_whatsapp/vendor/go.mau.fi/whatsmeow/proto/waMediaTransport/WAMediaTransport.pb.go +162 -9
- slidge_whatsapp/vendor/go.mau.fi/whatsmeow/proto/waMediaTransport/WAMediaTransport.proto +1 -0
- slidge_whatsapp/vendor/go.mau.fi/whatsmeow/proto/waMmsRetry/WAMmsRetry.pb.go +32 -9
- slidge_whatsapp/vendor/go.mau.fi/whatsmeow/proto/waMmsRetry/WAMmsRetry.proto +1 -0
- slidge_whatsapp/vendor/go.mau.fi/whatsmeow/proto/waMsgApplication/WAMsgApplication.pb.go +192 -52
- slidge_whatsapp/vendor/go.mau.fi/whatsmeow/proto/waMsgApplication/WAMsgApplication.proto +8 -0
- slidge_whatsapp/vendor/go.mau.fi/whatsmeow/proto/waMsgTransport/WAMsgTransport.pb.go +60 -9
- slidge_whatsapp/vendor/go.mau.fi/whatsmeow/proto/waMsgTransport/extra.go +7 -6
- slidge_whatsapp/vendor/go.mau.fi/whatsmeow/proto/waMultiDevice/WAMultiDevice.pb.go +39 -9
- slidge_whatsapp/vendor/go.mau.fi/whatsmeow/proto/waServerSync/WAServerSync.pb.go +61 -9
- slidge_whatsapp/vendor/go.mau.fi/whatsmeow/proto/waStatusAttributions/WAStatusAttributions.pb.go +952 -0
- slidge_whatsapp/vendor/go.mau.fi/whatsmeow/proto/waStatusAttributions/WAStatusAttributions.proto +88 -0
- slidge_whatsapp/vendor/go.mau.fi/whatsmeow/proto/waSyncAction/WASyncAction.pb.go +1802 -453
- slidge_whatsapp/vendor/go.mau.fi/whatsmeow/proto/waSyncAction/WASyncAction.proto +92 -0
- slidge_whatsapp/vendor/go.mau.fi/whatsmeow/proto/waUserPassword/WAProtobufsUserPassword.pb.go +27 -9
- slidge_whatsapp/vendor/go.mau.fi/whatsmeow/proto/waVnameCert/WAWebProtobufsVnameCert.pb.go +59 -9
- slidge_whatsapp/vendor/go.mau.fi/whatsmeow/proto/waWa6/WAWebProtobufsWa6.pb.go +435 -109
- slidge_whatsapp/vendor/go.mau.fi/whatsmeow/proto/waWa6/WAWebProtobufsWa6.proto +11 -0
- slidge_whatsapp/vendor/go.mau.fi/whatsmeow/proto/waWeb/WAWebProtobufsWeb.pb.go +563 -9
- slidge_whatsapp/vendor/go.mau.fi/whatsmeow/proto/waWeb/WAWebProtobufsWeb.proto +4 -0
- slidge_whatsapp/vendor/go.mau.fi/whatsmeow/receipt.go +32 -9
- slidge_whatsapp/vendor/go.mau.fi/whatsmeow/reportingfields.json +1 -0
- slidge_whatsapp/vendor/go.mau.fi/whatsmeow/reportingtoken.go +176 -0
- slidge_whatsapp/vendor/go.mau.fi/whatsmeow/retry.go +39 -21
- slidge_whatsapp/vendor/go.mau.fi/whatsmeow/send.go +267 -79
- slidge_whatsapp/vendor/go.mau.fi/whatsmeow/sendfb.go +28 -16
- slidge_whatsapp/vendor/go.mau.fi/whatsmeow/store/clientpayload.go +3 -1
- slidge_whatsapp/vendor/go.mau.fi/whatsmeow/store/noop.go +87 -44
- slidge_whatsapp/vendor/go.mau.fi/whatsmeow/store/signal.go +75 -88
- slidge_whatsapp/vendor/go.mau.fi/whatsmeow/store/sqlstore/container.go +86 -65
- slidge_whatsapp/vendor/go.mau.fi/whatsmeow/store/sqlstore/lidmap.go +186 -0
- slidge_whatsapp/vendor/go.mau.fi/whatsmeow/store/sqlstore/store.go +314 -170
- slidge_whatsapp/vendor/go.mau.fi/whatsmeow/store/sqlstore/upgrades/00-latest-schema.sql +155 -0
- slidge_whatsapp/vendor/go.mau.fi/whatsmeow/store/sqlstore/upgrades/03-message-secrets.sql +11 -0
- slidge_whatsapp/vendor/go.mau.fi/whatsmeow/store/sqlstore/upgrades/04-privacy-tokens.sql +8 -0
- slidge_whatsapp/vendor/go.mau.fi/whatsmeow/store/sqlstore/upgrades/05-account-jid-format.sql +2 -0
- slidge_whatsapp/vendor/go.mau.fi/whatsmeow/store/sqlstore/upgrades/06-facebook-uuid.sql +2 -0
- slidge_whatsapp/vendor/go.mau.fi/whatsmeow/store/sqlstore/upgrades/07-account-lid.sql +2 -0
- slidge_whatsapp/vendor/go.mau.fi/whatsmeow/store/sqlstore/upgrades/08-lid-mapping.sql +5 -0
- slidge_whatsapp/vendor/go.mau.fi/whatsmeow/store/sqlstore/upgrades/09-decryption-buffer.sql +10 -0
- slidge_whatsapp/vendor/go.mau.fi/whatsmeow/store/sqlstore/upgrades/10-chat-db-lid-migration-ts.sql +2 -0
- slidge_whatsapp/vendor/go.mau.fi/whatsmeow/store/sqlstore/upgrades/upgrades.go +22 -0
- slidge_whatsapp/vendor/go.mau.fi/whatsmeow/store/store.go +109 -56
- slidge_whatsapp/vendor/go.mau.fi/whatsmeow/types/botmap.go +210 -0
- slidge_whatsapp/vendor/go.mau.fi/whatsmeow/types/call.go +1 -0
- slidge_whatsapp/vendor/go.mau.fi/whatsmeow/types/events/events.go +21 -2
- slidge_whatsapp/vendor/go.mau.fi/whatsmeow/types/group.go +15 -6
- slidge_whatsapp/vendor/go.mau.fi/whatsmeow/types/jid.go +9 -9
- slidge_whatsapp/vendor/go.mau.fi/whatsmeow/types/message.go +18 -0
- slidge_whatsapp/vendor/go.mau.fi/whatsmeow/types/user.go +2 -0
- slidge_whatsapp/vendor/go.mau.fi/whatsmeow/update.go +3 -2
- slidge_whatsapp/vendor/go.mau.fi/whatsmeow/upload.go +1 -1
- slidge_whatsapp/vendor/go.mau.fi/whatsmeow/user.go +59 -37
- slidge_whatsapp/vendor/golang.org/x/crypto/curve25519/curve25519.go +1 -1
- slidge_whatsapp/vendor/golang.org/x/exp/LICENSE +27 -0
- slidge_whatsapp/vendor/golang.org/x/exp/PATENTS +22 -0
- slidge_whatsapp/vendor/golang.org/x/exp/constraints/constraints.go +54 -0
- slidge_whatsapp/vendor/golang.org/x/net/http/httpguts/guts.go +50 -0
- slidge_whatsapp/vendor/golang.org/x/net/http/httpguts/httplex.go +347 -0
- slidge_whatsapp/vendor/golang.org/x/net/http2/.gitignore +2 -0
- slidge_whatsapp/vendor/golang.org/x/net/http2/ascii.go +53 -0
- slidge_whatsapp/vendor/golang.org/x/net/http2/ciphers.go +641 -0
- slidge_whatsapp/vendor/golang.org/x/net/http2/client_conn_pool.go +311 -0
- slidge_whatsapp/vendor/golang.org/x/net/http2/config.go +164 -0
- slidge_whatsapp/vendor/golang.org/x/net/http2/databuffer.go +149 -0
- slidge_whatsapp/vendor/golang.org/x/net/http2/errors.go +145 -0
- slidge_whatsapp/vendor/golang.org/x/net/http2/flow.go +120 -0
- slidge_whatsapp/vendor/golang.org/x/net/http2/frame.go +1702 -0
- slidge_whatsapp/vendor/golang.org/x/net/http2/gotrack.go +181 -0
- slidge_whatsapp/vendor/golang.org/x/net/http2/hpack/encode.go +245 -0
- slidge_whatsapp/vendor/golang.org/x/net/http2/hpack/hpack.go +523 -0
- slidge_whatsapp/vendor/golang.org/x/net/http2/hpack/huffman.go +226 -0
- slidge_whatsapp/vendor/golang.org/x/net/http2/hpack/static_table.go +188 -0
- slidge_whatsapp/vendor/golang.org/x/net/http2/hpack/tables.go +403 -0
- slidge_whatsapp/vendor/golang.org/x/net/http2/http2.go +410 -0
- slidge_whatsapp/vendor/golang.org/x/net/http2/pipe.go +184 -0
- slidge_whatsapp/vendor/golang.org/x/net/http2/server.go +3332 -0
- slidge_whatsapp/vendor/golang.org/x/net/http2/transport.go +3233 -0
- slidge_whatsapp/vendor/golang.org/x/net/http2/unencrypted.go +32 -0
- slidge_whatsapp/vendor/golang.org/x/net/http2/write.go +381 -0
- slidge_whatsapp/vendor/golang.org/x/net/http2/writesched.go +251 -0
- slidge_whatsapp/vendor/golang.org/x/net/http2/writesched_priority.go +451 -0
- slidge_whatsapp/vendor/golang.org/x/net/http2/writesched_random.go +77 -0
- slidge_whatsapp/vendor/golang.org/x/net/http2/writesched_roundrobin.go +119 -0
- slidge_whatsapp/vendor/golang.org/x/net/idna/go118.go +13 -0
- slidge_whatsapp/vendor/golang.org/x/net/idna/idna10.0.0.go +769 -0
- slidge_whatsapp/vendor/golang.org/x/net/idna/idna9.0.0.go +717 -0
- slidge_whatsapp/vendor/golang.org/x/net/idna/pre_go118.go +11 -0
- slidge_whatsapp/vendor/golang.org/x/net/idna/punycode.go +217 -0
- slidge_whatsapp/vendor/golang.org/x/net/idna/tables10.0.0.go +4559 -0
- slidge_whatsapp/vendor/golang.org/x/net/idna/tables11.0.0.go +4653 -0
- slidge_whatsapp/vendor/golang.org/x/net/idna/tables12.0.0.go +4733 -0
- slidge_whatsapp/vendor/golang.org/x/net/idna/tables13.0.0.go +4959 -0
- slidge_whatsapp/vendor/golang.org/x/net/idna/tables15.0.0.go +5144 -0
- slidge_whatsapp/vendor/golang.org/x/net/idna/tables9.0.0.go +4486 -0
- slidge_whatsapp/vendor/golang.org/x/net/idna/trie.go +51 -0
- slidge_whatsapp/vendor/golang.org/x/net/idna/trie12.0.0.go +30 -0
- slidge_whatsapp/vendor/golang.org/x/net/idna/trie13.0.0.go +30 -0
- slidge_whatsapp/vendor/golang.org/x/net/idna/trieval.go +119 -0
- slidge_whatsapp/vendor/golang.org/x/net/internal/httpcommon/ascii.go +53 -0
- slidge_whatsapp/vendor/golang.org/x/net/internal/httpcommon/headermap.go +115 -0
- slidge_whatsapp/vendor/golang.org/x/net/internal/httpcommon/request.go +467 -0
- slidge_whatsapp/vendor/golang.org/x/sys/unix/affinity_linux.go +1 -3
- slidge_whatsapp/vendor/golang.org/x/sys/unix/mkerrors.sh +3 -0
- slidge_whatsapp/vendor/golang.org/x/sys/unix/syscall_darwin.go +93 -0
- slidge_whatsapp/vendor/golang.org/x/sys/unix/syscall_linux.go +16 -26
- slidge_whatsapp/vendor/golang.org/x/sys/unix/syscall_solaris.go +1 -1
- slidge_whatsapp/vendor/golang.org/x/sys/unix/zerrors_linux.go +47 -16
- slidge_whatsapp/vendor/golang.org/x/sys/unix/zerrors_linux_386.go +3 -0
- slidge_whatsapp/vendor/golang.org/x/sys/unix/zerrors_linux_amd64.go +3 -0
- slidge_whatsapp/vendor/golang.org/x/sys/unix/zerrors_linux_arm.go +3 -0
- slidge_whatsapp/vendor/golang.org/x/sys/unix/zerrors_linux_arm64.go +3 -0
- slidge_whatsapp/vendor/golang.org/x/sys/unix/zerrors_linux_loong64.go +3 -0
- slidge_whatsapp/vendor/golang.org/x/sys/unix/zerrors_linux_mips.go +3 -0
- slidge_whatsapp/vendor/golang.org/x/sys/unix/zerrors_linux_mips64.go +3 -0
- slidge_whatsapp/vendor/golang.org/x/sys/unix/zerrors_linux_mips64le.go +3 -0
- slidge_whatsapp/vendor/golang.org/x/sys/unix/zerrors_linux_mipsle.go +3 -0
- slidge_whatsapp/vendor/golang.org/x/sys/unix/zerrors_linux_ppc.go +3 -0
- slidge_whatsapp/vendor/golang.org/x/sys/unix/zerrors_linux_ppc64.go +3 -0
- slidge_whatsapp/vendor/golang.org/x/sys/unix/zerrors_linux_ppc64le.go +3 -0
- slidge_whatsapp/vendor/golang.org/x/sys/unix/zerrors_linux_riscv64.go +3 -0
- slidge_whatsapp/vendor/golang.org/x/sys/unix/zerrors_linux_s390x.go +3 -0
- slidge_whatsapp/vendor/golang.org/x/sys/unix/zerrors_linux_sparc64.go +3 -0
- slidge_whatsapp/vendor/golang.org/x/sys/unix/zsyscall_darwin_amd64.go +84 -0
- slidge_whatsapp/vendor/golang.org/x/sys/unix/zsyscall_darwin_amd64.s +20 -0
- slidge_whatsapp/vendor/golang.org/x/sys/unix/zsyscall_darwin_arm64.go +84 -0
- slidge_whatsapp/vendor/golang.org/x/sys/unix/zsyscall_darwin_arm64.s +20 -0
- slidge_whatsapp/vendor/golang.org/x/sys/unix/zsyscall_solaris_amd64.go +4 -4
- slidge_whatsapp/vendor/golang.org/x/sys/unix/zsysnum_linux_386.go +1 -0
- slidge_whatsapp/vendor/golang.org/x/sys/unix/zsysnum_linux_amd64.go +1 -0
- slidge_whatsapp/vendor/golang.org/x/sys/unix/zsysnum_linux_arm.go +1 -0
- slidge_whatsapp/vendor/golang.org/x/sys/unix/zsysnum_linux_arm64.go +1 -0
- slidge_whatsapp/vendor/golang.org/x/sys/unix/zsysnum_linux_loong64.go +1 -0
- slidge_whatsapp/vendor/golang.org/x/sys/unix/zsysnum_linux_mips.go +1 -0
- slidge_whatsapp/vendor/golang.org/x/sys/unix/zsysnum_linux_mips64.go +1 -0
- slidge_whatsapp/vendor/golang.org/x/sys/unix/zsysnum_linux_mips64le.go +1 -0
- slidge_whatsapp/vendor/golang.org/x/sys/unix/zsysnum_linux_mipsle.go +1 -0
- slidge_whatsapp/vendor/golang.org/x/sys/unix/zsysnum_linux_ppc.go +1 -0
- slidge_whatsapp/vendor/golang.org/x/sys/unix/zsysnum_linux_ppc64.go +1 -0
- slidge_whatsapp/vendor/golang.org/x/sys/unix/zsysnum_linux_ppc64le.go +1 -0
- slidge_whatsapp/vendor/golang.org/x/sys/unix/zsysnum_linux_riscv64.go +1 -0
- slidge_whatsapp/vendor/golang.org/x/sys/unix/zsysnum_linux_s390x.go +1 -0
- slidge_whatsapp/vendor/golang.org/x/sys/unix/zsysnum_linux_sparc64.go +1 -0
- slidge_whatsapp/vendor/golang.org/x/sys/unix/ztypes_linux.go +168 -12
- slidge_whatsapp/vendor/golang.org/x/sys/unix/ztypes_linux_386.go +17 -1
- slidge_whatsapp/vendor/golang.org/x/sys/unix/ztypes_linux_amd64.go +16 -0
- slidge_whatsapp/vendor/golang.org/x/sys/unix/ztypes_linux_arm.go +18 -2
- slidge_whatsapp/vendor/golang.org/x/sys/unix/ztypes_linux_arm64.go +16 -0
- slidge_whatsapp/vendor/golang.org/x/sys/unix/ztypes_linux_loong64.go +16 -0
- slidge_whatsapp/vendor/golang.org/x/sys/unix/ztypes_linux_mips.go +17 -1
- slidge_whatsapp/vendor/golang.org/x/sys/unix/ztypes_linux_mips64.go +16 -0
- slidge_whatsapp/vendor/golang.org/x/sys/unix/ztypes_linux_mips64le.go +16 -0
- slidge_whatsapp/vendor/golang.org/x/sys/unix/ztypes_linux_mipsle.go +17 -1
- slidge_whatsapp/vendor/golang.org/x/sys/unix/ztypes_linux_ppc.go +18 -2
- slidge_whatsapp/vendor/golang.org/x/sys/unix/ztypes_linux_ppc64.go +16 -0
- slidge_whatsapp/vendor/golang.org/x/sys/unix/ztypes_linux_ppc64le.go +16 -0
- slidge_whatsapp/vendor/golang.org/x/sys/unix/ztypes_linux_riscv64.go +16 -0
- slidge_whatsapp/vendor/golang.org/x/sys/unix/ztypes_linux_s390x.go +16 -0
- slidge_whatsapp/vendor/golang.org/x/sys/unix/ztypes_linux_sparc64.go +16 -0
- slidge_whatsapp/vendor/golang.org/x/sys/windows/security_windows.go +44 -5
- slidge_whatsapp/vendor/golang.org/x/sys/windows/syscall_windows.go +4 -2
- slidge_whatsapp/vendor/golang.org/x/sys/windows/types_windows.go +245 -0
- slidge_whatsapp/vendor/golang.org/x/sys/windows/zsyscall_windows.go +491 -482
- slidge_whatsapp/vendor/golang.org/x/text/LICENSE +27 -0
- slidge_whatsapp/vendor/golang.org/x/text/PATENTS +22 -0
- slidge_whatsapp/vendor/golang.org/x/text/secure/bidirule/bidirule.go +336 -0
- slidge_whatsapp/vendor/golang.org/x/text/secure/bidirule/bidirule10.0.0.go +11 -0
- slidge_whatsapp/vendor/golang.org/x/text/secure/bidirule/bidirule9.0.0.go +14 -0
- slidge_whatsapp/vendor/golang.org/x/text/transform/transform.go +709 -0
- slidge_whatsapp/vendor/golang.org/x/text/unicode/bidi/bidi.go +359 -0
- slidge_whatsapp/vendor/golang.org/x/text/unicode/bidi/bracket.go +335 -0
- slidge_whatsapp/vendor/golang.org/x/text/unicode/bidi/core.go +1071 -0
- slidge_whatsapp/vendor/golang.org/x/text/unicode/bidi/prop.go +206 -0
- slidge_whatsapp/vendor/golang.org/x/text/unicode/bidi/tables10.0.0.go +1815 -0
- slidge_whatsapp/vendor/golang.org/x/text/unicode/bidi/tables11.0.0.go +1887 -0
- slidge_whatsapp/vendor/golang.org/x/text/unicode/bidi/tables12.0.0.go +1923 -0
- slidge_whatsapp/vendor/golang.org/x/text/unicode/bidi/tables13.0.0.go +1955 -0
- slidge_whatsapp/vendor/golang.org/x/text/unicode/bidi/tables15.0.0.go +2042 -0
- slidge_whatsapp/vendor/golang.org/x/text/unicode/bidi/tables9.0.0.go +1781 -0
- slidge_whatsapp/vendor/golang.org/x/text/unicode/bidi/trieval.go +48 -0
- slidge_whatsapp/vendor/golang.org/x/text/unicode/norm/composition.go +512 -0
- slidge_whatsapp/vendor/golang.org/x/text/unicode/norm/forminfo.go +279 -0
- slidge_whatsapp/vendor/golang.org/x/text/unicode/norm/input.go +109 -0
- slidge_whatsapp/vendor/golang.org/x/text/unicode/norm/iter.go +458 -0
- slidge_whatsapp/vendor/golang.org/x/text/unicode/norm/normalize.go +610 -0
- slidge_whatsapp/vendor/golang.org/x/text/unicode/norm/readwriter.go +125 -0
- slidge_whatsapp/vendor/golang.org/x/text/unicode/norm/tables10.0.0.go +7657 -0
- slidge_whatsapp/vendor/golang.org/x/text/unicode/norm/tables11.0.0.go +7693 -0
- slidge_whatsapp/vendor/golang.org/x/text/unicode/norm/tables12.0.0.go +7710 -0
- slidge_whatsapp/vendor/golang.org/x/text/unicode/norm/tables13.0.0.go +7760 -0
- slidge_whatsapp/vendor/golang.org/x/text/unicode/norm/tables15.0.0.go +7907 -0
- slidge_whatsapp/vendor/golang.org/x/text/unicode/norm/tables9.0.0.go +7637 -0
- slidge_whatsapp/vendor/golang.org/x/text/unicode/norm/transform.go +88 -0
- slidge_whatsapp/vendor/golang.org/x/text/unicode/norm/trie.go +54 -0
- slidge_whatsapp/vendor/google.golang.org/protobuf/encoding/protowire/wire.go +25 -1
- slidge_whatsapp/vendor/google.golang.org/protobuf/internal/editiondefaults/editions_defaults.binpb +0 -0
- slidge_whatsapp/vendor/google.golang.org/protobuf/internal/filedesc/editions.go +13 -5
- slidge_whatsapp/vendor/google.golang.org/protobuf/internal/filedesc/presence.go +33 -0
- slidge_whatsapp/vendor/google.golang.org/protobuf/internal/genid/api_gen.go +6 -0
- slidge_whatsapp/vendor/google.golang.org/protobuf/internal/genid/descriptor_gen.go +81 -19
- slidge_whatsapp/vendor/google.golang.org/protobuf/internal/impl/codec_message_opaque.go +2 -1
- slidge_whatsapp/vendor/google.golang.org/protobuf/internal/impl/message_opaque.go +8 -37
- slidge_whatsapp/vendor/google.golang.org/protobuf/internal/impl/presence.go +0 -3
- slidge_whatsapp/vendor/google.golang.org/protobuf/internal/strs/{strings_unsafe_go121.go → strings_unsafe.go} +0 -2
- slidge_whatsapp/vendor/google.golang.org/protobuf/internal/version/version.go +1 -1
- slidge_whatsapp/vendor/google.golang.org/protobuf/proto/merge.go +6 -0
- slidge_whatsapp/vendor/google.golang.org/protobuf/reflect/protoreflect/source_gen.go +10 -0
- slidge_whatsapp/vendor/google.golang.org/protobuf/reflect/protoreflect/{value_unsafe_go121.go → value_unsafe.go} +0 -2
- slidge_whatsapp/vendor/modules.txt +80 -21
- {slidge_whatsapp-0.2.5.dist-info → slidge_whatsapp-0.3.0b0.dist-info}/METADATA +2 -2
- {slidge_whatsapp-0.2.5.dist-info → slidge_whatsapp-0.3.0b0.dist-info}/RECORD +456 -263
- {slidge_whatsapp-0.2.5.dist-info → slidge_whatsapp-0.3.0b0.dist-info}/WHEEL +1 -1
- slidge_whatsapp/vendor/github.com/jupiterrider/ffi/abi_amd64.go +0 -7
- slidge_whatsapp/vendor/github.com/rs/zerolog/CNAME +0 -1
- slidge_whatsapp/vendor/github.com/rs/zerolog/_config.yml +0 -1
- slidge_whatsapp/vendor/go.mau.fi/whatsmeow/proto/waAdv/WAAdv.pb.raw +0 -0
- slidge_whatsapp/vendor/go.mau.fi/whatsmeow/proto/waArmadilloApplication/WAArmadilloApplication.pb.raw +0 -0
- slidge_whatsapp/vendor/go.mau.fi/whatsmeow/proto/waArmadilloXMA/WAArmadilloXMA.pb.raw +0 -0
- slidge_whatsapp/vendor/go.mau.fi/whatsmeow/proto/waCert/WACert.pb.raw +0 -23
- slidge_whatsapp/vendor/go.mau.fi/whatsmeow/proto/waChatLockSettings/WAProtobufsChatLockSettings.pb.raw +0 -7
- slidge_whatsapp/vendor/go.mau.fi/whatsmeow/proto/waCommon/WACommon.pb.raw +0 -0
- slidge_whatsapp/vendor/go.mau.fi/whatsmeow/proto/waCompanionReg/WAWebProtobufsCompanionReg.pb.raw +0 -0
- slidge_whatsapp/vendor/go.mau.fi/whatsmeow/proto/waConsumerApplication/WAConsumerApplication.pb.raw +0 -0
- slidge_whatsapp/vendor/go.mau.fi/whatsmeow/proto/waDeviceCapabilities/WAProtobufsDeviceCapabilities.pb.raw +0 -0
- slidge_whatsapp/vendor/go.mau.fi/whatsmeow/proto/waE2E/WAWebProtobufsE2E.pb.raw +0 -0
- slidge_whatsapp/vendor/go.mau.fi/whatsmeow/proto/waHistorySync/WAWebProtobufsHistorySync.pb.raw +0 -0
- slidge_whatsapp/vendor/go.mau.fi/whatsmeow/proto/waMediaTransport/WAMediaTransport.pb.raw +0 -0
- slidge_whatsapp/vendor/go.mau.fi/whatsmeow/proto/waMmsRetry/WAMmsRetry.pb.raw +0 -0
- slidge_whatsapp/vendor/go.mau.fi/whatsmeow/proto/waMsgApplication/WAMsgApplication.pb.raw +0 -0
- slidge_whatsapp/vendor/go.mau.fi/whatsmeow/proto/waMsgTransport/WAMsgTransport.pb.raw +0 -0
- slidge_whatsapp/vendor/go.mau.fi/whatsmeow/proto/waMultiDevice/WAMultiDevice.pb.raw +0 -0
- slidge_whatsapp/vendor/go.mau.fi/whatsmeow/proto/waServerSync/WAServerSync.pb.raw +0 -0
- slidge_whatsapp/vendor/go.mau.fi/whatsmeow/proto/waSyncAction/WASyncAction.pb.raw +0 -0
- slidge_whatsapp/vendor/go.mau.fi/whatsmeow/proto/waUserPassword/WAProtobufsUserPassword.pb.raw +0 -0
- slidge_whatsapp/vendor/go.mau.fi/whatsmeow/proto/waVnameCert/WAWebProtobufsVnameCert.pb.raw +0 -0
- slidge_whatsapp/vendor/go.mau.fi/whatsmeow/proto/waWa6/WAWebProtobufsWa6.pb.raw +0 -0
- slidge_whatsapp/vendor/go.mau.fi/whatsmeow/proto/waWeb/WAWebProtobufsWeb.pb.raw +0 -0
- slidge_whatsapp/vendor/go.mau.fi/whatsmeow/store/sqlstore/upgrade.go +0 -296
- slidge_whatsapp/vendor/google.golang.org/protobuf/internal/strs/strings_unsafe_go120.go +0 -94
- slidge_whatsapp/vendor/google.golang.org/protobuf/reflect/protoreflect/value_unsafe_go120.go +0 -98
- {slidge_whatsapp-0.2.5.dist-info → slidge_whatsapp-0.3.0b0.dist-info}/LICENSE +0 -0
- {slidge_whatsapp-0.2.5.dist-info → slidge_whatsapp-0.3.0b0.dist-info}/entry_points.txt +0 -0
slidge_whatsapp/config.py
CHANGED
|
@@ -21,6 +21,9 @@ DB_PATH__DOC = (
|
|
|
21
21
|
"${SLIDGE_HOME_DIR}/whatsapp/whatsapp.db"
|
|
22
22
|
)
|
|
23
23
|
|
|
24
|
+
DB_PARAMS = "?_foreign_keys=true"
|
|
25
|
+
DB_PARAMS__DOC = "Additional parameters to pass to database connection string."
|
|
26
|
+
|
|
24
27
|
ALWAYS_SYNC_ROSTER = False
|
|
25
28
|
ALWAYS_SYNC_ROSTER__DOC = (
|
|
26
29
|
"Whether or not to perform a full sync of the WhatsApp roster on startup."
|
slidge_whatsapp/contact.py
CHANGED
|
@@ -2,6 +2,7 @@ from datetime import datetime, timezone
|
|
|
2
2
|
from typing import TYPE_CHECKING
|
|
3
3
|
|
|
4
4
|
from slidge import LegacyContact, LegacyRoster
|
|
5
|
+
from slidge.util.types import Avatar
|
|
5
6
|
from slixmpp.exceptions import XMPPError
|
|
6
7
|
|
|
7
8
|
from . import config
|
|
@@ -28,6 +29,12 @@ class Contact(LegacyContact[str]):
|
|
|
28
29
|
else:
|
|
29
30
|
self.online(last_seen=last_seen)
|
|
30
31
|
|
|
32
|
+
async def update_info(self) -> None:
|
|
33
|
+
if whatsapp.IsAnonymousJID(self.legacy_id):
|
|
34
|
+
self.log.error(
|
|
35
|
+
"Contact for anonymous participant added: %s", self.legacy_id
|
|
36
|
+
)
|
|
37
|
+
|
|
31
38
|
|
|
32
39
|
class Roster(LegacyRoster[str, Contact]):
|
|
33
40
|
session: "Session"
|
|
@@ -54,9 +61,12 @@ class Roster(LegacyRoster[str, Contact]):
|
|
|
54
61
|
contact.name = data.Name
|
|
55
62
|
contact.is_friend = True
|
|
56
63
|
try:
|
|
57
|
-
|
|
58
|
-
if
|
|
59
|
-
|
|
64
|
+
unique_id = ""
|
|
65
|
+
if contact.avatar is not None:
|
|
66
|
+
unique_id = contact.avatar.unique_id or ""
|
|
67
|
+
avatar = self.session.whatsapp.GetAvatar(data.JID, unique_id)
|
|
68
|
+
if avatar.URL and unique_id != avatar.ID:
|
|
69
|
+
await contact.set_avatar(Avatar(url=avatar.URL, unique_id=avatar.ID))
|
|
60
70
|
elif avatar.URL == "" and avatar.ID == "":
|
|
61
71
|
await contact.set_avatar(None)
|
|
62
72
|
except RuntimeError as err:
|
slidge_whatsapp/event.go
CHANGED
|
@@ -5,6 +5,7 @@ import (
|
|
|
5
5
|
"context"
|
|
6
6
|
"fmt"
|
|
7
7
|
"mime"
|
|
8
|
+
"slices"
|
|
8
9
|
"strings"
|
|
9
10
|
|
|
10
11
|
// Internal packages.
|
|
@@ -45,6 +46,7 @@ type EventPayload struct {
|
|
|
45
46
|
QRCode string
|
|
46
47
|
PairDeviceID string
|
|
47
48
|
Connect Connect
|
|
49
|
+
LoggedOut LoggedOut
|
|
48
50
|
Contact Contact
|
|
49
51
|
Presence Presence
|
|
50
52
|
Message Message
|
|
@@ -65,6 +67,11 @@ type Connect struct {
|
|
|
65
67
|
Error string // The connection error, if any.
|
|
66
68
|
}
|
|
67
69
|
|
|
70
|
+
// LoggedOut repreents event data related to an explicit or implicit log-out event.
|
|
71
|
+
type LoggedOut struct {
|
|
72
|
+
Reason string // The human-readable reason for logging out, if any.
|
|
73
|
+
}
|
|
74
|
+
|
|
68
75
|
// A Avatar represents a small image set for a Contact or Group.
|
|
69
76
|
type Avatar struct {
|
|
70
77
|
ID string // The unique ID for this avatar, used for persistent caching.
|
|
@@ -81,10 +88,25 @@ type Contact struct {
|
|
|
81
88
|
// NewContactEvent returns event data meant for [Session.propagateEvent] for the contact information
|
|
82
89
|
// given. Unknown or invalid contact information will return an [EventUnknown] event with nil data.
|
|
83
90
|
func newContactEvent(jid types.JID, info types.ContactInfo) (EventKind, *EventPayload) {
|
|
84
|
-
|
|
85
|
-
|
|
91
|
+
contact := newContact(jid, info)
|
|
92
|
+
if contact.JID == "" {
|
|
93
|
+
return EventUnknown, nil
|
|
86
94
|
}
|
|
87
95
|
|
|
96
|
+
return EventContact, &EventPayload{Contact: contact}
|
|
97
|
+
}
|
|
98
|
+
|
|
99
|
+
// NewContact returns a concrete [Contact] instance for the JID and additional information given.
|
|
100
|
+
// In cases where a valid contact can't be returned, [Contact.JID] will be left empty.
|
|
101
|
+
func newContact(jid types.JID, info types.ContactInfo) Contact {
|
|
102
|
+
// Don't instantiate hidden contacts, as these are better handled as group participants
|
|
103
|
+
if jid.Server == types.HiddenUserServer {
|
|
104
|
+
return Contact{}
|
|
105
|
+
}
|
|
106
|
+
|
|
107
|
+
// Find valid contact name from list of alternatives, or return empty contact if none could
|
|
108
|
+
// be found.
|
|
109
|
+
var contact = Contact{JID: jid.ToNonAD().String()}
|
|
88
110
|
for _, n := range []string{info.FullName, info.FirstName, info.BusinessName, info.PushName} {
|
|
89
111
|
if n != "" {
|
|
90
112
|
contact.Name = n
|
|
@@ -92,12 +114,11 @@ func newContactEvent(jid types.JID, info types.ContactInfo) (EventKind, *EventPa
|
|
|
92
114
|
}
|
|
93
115
|
}
|
|
94
116
|
|
|
95
|
-
// Don't attempt to synchronize contacts with no user-readable name.
|
|
96
117
|
if contact.Name == "" {
|
|
97
|
-
return
|
|
118
|
+
return Contact{}
|
|
98
119
|
}
|
|
99
120
|
|
|
100
|
-
return
|
|
121
|
+
return contact
|
|
101
122
|
}
|
|
102
123
|
|
|
103
124
|
// PresenceKind represents the different kinds of activity states possible in WhatsApp.
|
|
@@ -168,9 +189,11 @@ type Message struct {
|
|
|
168
189
|
Location Location // The location metadata for messages, if any.
|
|
169
190
|
Poll Poll // The multiple-choice poll contained in the message, if any.
|
|
170
191
|
Album Album // The image album message, if any.
|
|
192
|
+
GroupInvite Group // Group information for the invite group included in this message, if any.
|
|
171
193
|
MentionJIDs []string // A list of JIDs mentioned in this message, if any.
|
|
172
194
|
Receipts []Receipt // The receipt statuses for the message, typically provided alongside historical messages.
|
|
173
195
|
Reactions []Message // Reactions attached to message, typically provided alongside historical messages.
|
|
196
|
+
IsHistory bool // Whether or not the message is derived from message history.
|
|
174
197
|
}
|
|
175
198
|
|
|
176
199
|
// A Attachment represents additional binary data (e.g. images, videos, documents) provided alongside
|
|
@@ -252,13 +275,13 @@ type Album struct {
|
|
|
252
275
|
|
|
253
276
|
// NewMessageEvent returns event data meant for [Session.propagateEvent] for the primive message
|
|
254
277
|
// event given. Unknown or invalid messages will return an [EventUnknown] event with nil data.
|
|
255
|
-
func newMessageEvent(client *whatsmeow.Client, evt *events.Message) (EventKind, *EventPayload) {
|
|
278
|
+
func newMessageEvent(ctx context.Context, client *whatsmeow.Client, evt *events.Message) (EventKind, *EventPayload) {
|
|
256
279
|
// Set basic data for message, to be potentially amended depending on the concrete version of
|
|
257
280
|
// the underlying message.
|
|
258
281
|
var message = Message{
|
|
259
282
|
Kind: MessagePlain,
|
|
260
283
|
ID: evt.Info.ID,
|
|
261
|
-
JID: evt.Info.Sender.ToNonAD().String(),
|
|
284
|
+
JID: getPreferredJID(ctx, client, evt.Info.Sender, evt.Info.SenderAlt).ToNonAD().String(),
|
|
262
285
|
Body: evt.Message.GetConversation(),
|
|
263
286
|
Timestamp: evt.Info.Timestamp.Unix(),
|
|
264
287
|
IsCarbon: evt.Info.IsFromMe,
|
|
@@ -358,7 +381,7 @@ func newMessageEvent(client *whatsmeow.Client, evt *events.Message) (EventKind,
|
|
|
358
381
|
}
|
|
359
382
|
|
|
360
383
|
// Handle message attachments, if any.
|
|
361
|
-
if attach, context, err := getMessageAttachments(client, evt.Message); err != nil {
|
|
384
|
+
if attach, context, err := getMessageAttachments(ctx, client, evt.Message); err != nil {
|
|
362
385
|
client.Log.Errorf("Failed getting message attachments: %s", err)
|
|
363
386
|
return EventUnknown, nil
|
|
364
387
|
} else if len(attach) > 0 {
|
|
@@ -376,7 +399,18 @@ func newMessageEvent(client *whatsmeow.Client, evt *events.Message) (EventKind,
|
|
|
376
399
|
message.Body = e.GetText()
|
|
377
400
|
}
|
|
378
401
|
|
|
379
|
-
|
|
402
|
+
// Handle group-chat invite link in text message.
|
|
403
|
+
if code, ok := strings.CutPrefix(e.GetMatchedText(), whatsmeow.InviteLinkPrefix); ok {
|
|
404
|
+
if info, err := client.GetGroupInfoFromLink(e.GetMatchedText()); err != nil {
|
|
405
|
+
client.Log.Errorf("Failed getting group info from invite: %s", err)
|
|
406
|
+
} else if _, err := client.JoinGroupWithLink(code); err != nil {
|
|
407
|
+
client.Log.Errorf("Failed joining group with invite: %s", err)
|
|
408
|
+
} else {
|
|
409
|
+
message.GroupInvite = newGroup(ctx, client, info)
|
|
410
|
+
}
|
|
411
|
+
} else {
|
|
412
|
+
message = getMessageWithContext(message, e.GetContextInfo())
|
|
413
|
+
}
|
|
380
414
|
}
|
|
381
415
|
|
|
382
416
|
// Ignore obviously invalid messages.
|
|
@@ -412,7 +446,7 @@ func getMessageWithContext(message Message, info *waE2E.ContextInfo) Message {
|
|
|
412
446
|
|
|
413
447
|
// GetMessageAttachments fetches and decrypts attachments (images, audio, video, or documents) sent
|
|
414
448
|
// via WhatsApp. Any failures in retrieving any attachment will return an error immediately.
|
|
415
|
-
func getMessageAttachments(client *whatsmeow.Client, message *waE2E.Message) ([]Attachment, *waE2E.ContextInfo, error) {
|
|
449
|
+
func getMessageAttachments(ctx context.Context, client *whatsmeow.Client, message *waE2E.Message) ([]Attachment, *waE2E.ContextInfo, error) {
|
|
416
450
|
var result []Attachment
|
|
417
451
|
var info *waE2E.ContextInfo
|
|
418
452
|
var convertSpec *media.Spec
|
|
@@ -422,6 +456,7 @@ func getMessageAttachments(client *whatsmeow.Client, message *waE2E.Message) ([]
|
|
|
422
456
|
message.GetVideoMessage(),
|
|
423
457
|
message.GetDocumentMessage(),
|
|
424
458
|
message.GetStickerMessage(),
|
|
459
|
+
message.GetPtvMessage(),
|
|
425
460
|
}
|
|
426
461
|
|
|
427
462
|
for _, msg := range kinds {
|
|
@@ -450,7 +485,7 @@ func getMessageAttachments(client *whatsmeow.Client, message *waE2E.Message) ([]
|
|
|
450
485
|
}
|
|
451
486
|
|
|
452
487
|
// Attempt to download and decrypt raw attachment data, if any.
|
|
453
|
-
data, err := client.Download(msg)
|
|
488
|
+
data, err := client.Download(ctx, msg)
|
|
454
489
|
if err != nil {
|
|
455
490
|
return nil, nil, err
|
|
456
491
|
}
|
|
@@ -459,8 +494,10 @@ func getMessageAttachments(client *whatsmeow.Client, message *waE2E.Message) ([]
|
|
|
459
494
|
|
|
460
495
|
// Convert incoming data if a specification has been given, ignoring any errors that occur.
|
|
461
496
|
if convertSpec != nil {
|
|
462
|
-
data, err = media.Convert(
|
|
463
|
-
if err
|
|
497
|
+
data, err = media.Convert(ctx, a.Data, convertSpec)
|
|
498
|
+
if err != nil {
|
|
499
|
+
client.Log.Warnf("failed to convert incoming attachment: %s", err)
|
|
500
|
+
} else {
|
|
464
501
|
a.Data, a.MIME = data, string(convertSpec.MIME)
|
|
465
502
|
}
|
|
466
503
|
}
|
|
@@ -557,7 +594,7 @@ var (
|
|
|
557
594
|
//
|
|
558
595
|
// If the input MIME type is unknown, or conversion is impossible, the given attachment is not
|
|
559
596
|
// changed.
|
|
560
|
-
func convertAttachment(attach *Attachment) error {
|
|
597
|
+
func convertAttachment(ctx context.Context, attach *Attachment) error {
|
|
561
598
|
var detectedMIME media.MIMEType
|
|
562
599
|
if t := media.DetectMIMEType(attach.Data); t != media.TypeUnknown {
|
|
563
600
|
detectedMIME = t
|
|
@@ -567,8 +604,6 @@ func convertAttachment(attach *Attachment) error {
|
|
|
567
604
|
}
|
|
568
605
|
|
|
569
606
|
var spec media.Spec
|
|
570
|
-
var ctx = context.Background()
|
|
571
|
-
|
|
572
607
|
switch detectedMIME {
|
|
573
608
|
case media.TypePNG, media.TypeWebP:
|
|
574
609
|
// Convert common image formats to JPEG for inline preview.
|
|
@@ -648,6 +683,10 @@ func convertAttachment(attach *Attachment) error {
|
|
|
648
683
|
}
|
|
649
684
|
|
|
650
685
|
attach.Data, attach.MIME = data, string(spec.MIME)
|
|
686
|
+
if i := strings.LastIndexByte(attach.Filename, '.'); i != -1 {
|
|
687
|
+
attach.Filename = attach.Filename[:i] + extensionByType(attach.MIME)
|
|
688
|
+
}
|
|
689
|
+
|
|
651
690
|
return nil
|
|
652
691
|
}
|
|
653
692
|
|
|
@@ -666,12 +705,10 @@ var knownMediaTypes = map[string]whatsmeow.MediaType{
|
|
|
666
705
|
// type specified within. Attachments are handled as generic file uploads unless they're of a
|
|
667
706
|
// specific format; in addition, certain MIME types may be automatically converted to a
|
|
668
707
|
// well-supported type via FFmpeg (if available).
|
|
669
|
-
func uploadAttachment(client *whatsmeow.Client, attach *Attachment) (*waE2E.Message, error) {
|
|
670
|
-
var ctx = context.Background()
|
|
708
|
+
func uploadAttachment(ctx context.Context, client *whatsmeow.Client, attach *Attachment) (*waE2E.Message, error) {
|
|
671
709
|
var originalMIME = attach.MIME
|
|
672
|
-
|
|
673
|
-
|
|
674
|
-
client.Log.Warnf("failed to auto-convert attachment: %s", err)
|
|
710
|
+
if err := convertAttachment(ctx, attach); err != nil {
|
|
711
|
+
client.Log.Warnf("failed to convert outgoing attachment: %s", err)
|
|
675
712
|
}
|
|
676
713
|
|
|
677
714
|
mediaType := knownMediaTypes[getBaseMediaType(attach.MIME)]
|
|
@@ -833,7 +870,7 @@ func getBaseMediaType(typ string) string {
|
|
|
833
870
|
//
|
|
834
871
|
// Typically, this will return [EventMessage] events with appropriate [Message] payloads; unknown or
|
|
835
872
|
// invalid messages will return an [EventUnknown] event with nil data.
|
|
836
|
-
func newEventFromHistory(client *whatsmeow.Client, info *waWeb.WebMessageInfo) (EventKind, *EventPayload) {
|
|
873
|
+
func newEventFromHistory(ctx context.Context, client *whatsmeow.Client, info *waWeb.WebMessageInfo) (EventKind, *EventPayload) {
|
|
837
874
|
// Handle message as group message is remote JID is a group JID in the absence of any other,
|
|
838
875
|
// specific signal, or don't handle at all if no group JID is found.
|
|
839
876
|
var jid = info.GetKey().GetRemoteJID()
|
|
@@ -850,6 +887,7 @@ func newEventFromHistory(client *whatsmeow.Client, info *waWeb.WebMessageInfo) (
|
|
|
850
887
|
Body: info.GetMessage().GetConversation(),
|
|
851
888
|
Timestamp: int64(info.GetMessageTimestamp()),
|
|
852
889
|
IsCarbon: info.GetKey().GetFromMe(),
|
|
890
|
+
IsHistory: true,
|
|
853
891
|
}
|
|
854
892
|
|
|
855
893
|
if info.Participant != nil {
|
|
@@ -898,7 +936,7 @@ func newEventFromHistory(client *whatsmeow.Client, info *waWeb.WebMessageInfo) (
|
|
|
898
936
|
}
|
|
899
937
|
|
|
900
938
|
// Handle message attachments, if any.
|
|
901
|
-
if attach, context, err := getMessageAttachments(client, info.GetMessage()); err != nil {
|
|
939
|
+
if attach, context, err := getMessageAttachments(ctx, client, info.GetMessage()); err != nil {
|
|
902
940
|
client.Log.Errorf("Failed getting message attachments: %s", err)
|
|
903
941
|
return EventUnknown, nil
|
|
904
942
|
} else if len(attach) > 0 {
|
|
@@ -967,9 +1005,9 @@ type ChatState struct {
|
|
|
967
1005
|
// NewChatStateEvent returns event data meant for [Session.propagateEvent] for the primitive
|
|
968
1006
|
// chat-state event given.
|
|
969
1007
|
func newChatStateEvent(evt *events.ChatPresence) (EventKind, *EventPayload) {
|
|
970
|
-
var state = ChatState{JID: evt.
|
|
971
|
-
if evt.
|
|
972
|
-
state.GroupJID = evt.
|
|
1008
|
+
var state = ChatState{JID: evt.Sender.ToNonAD().String()}
|
|
1009
|
+
if evt.IsGroup {
|
|
1010
|
+
state.GroupJID = evt.Chat.ToNonAD().String()
|
|
973
1011
|
}
|
|
974
1012
|
switch evt.State {
|
|
975
1013
|
case types.ChatPresenceComposing:
|
|
@@ -1004,24 +1042,24 @@ type Receipt struct {
|
|
|
1004
1042
|
|
|
1005
1043
|
// NewReceiptEvent returns event data meant for [Session.propagateEvent] for the primive receipt
|
|
1006
1044
|
// event given. Unknown or invalid receipts will return an [EventUnknown] event with nil data.
|
|
1007
|
-
func newReceiptEvent(evt *events.Receipt) (EventKind, *EventPayload) {
|
|
1045
|
+
func newReceiptEvent(ctx context.Context, client *whatsmeow.Client, evt *events.Receipt) (EventKind, *EventPayload) {
|
|
1008
1046
|
var receipt = Receipt{
|
|
1009
|
-
MessageIDs:
|
|
1010
|
-
JID: evt.
|
|
1047
|
+
MessageIDs: slices.Clone(evt.MessageIDs),
|
|
1048
|
+
JID: getPreferredJID(ctx, client, evt.Sender, evt.SenderAlt).ToNonAD().String(),
|
|
1011
1049
|
Timestamp: evt.Timestamp.Unix(),
|
|
1012
|
-
IsCarbon: evt.
|
|
1050
|
+
IsCarbon: evt.IsFromMe,
|
|
1013
1051
|
}
|
|
1014
1052
|
|
|
1015
1053
|
if len(receipt.MessageIDs) == 0 {
|
|
1016
1054
|
return EventUnknown, nil
|
|
1017
1055
|
}
|
|
1018
1056
|
|
|
1019
|
-
if evt.
|
|
1020
|
-
receipt.JID = evt.
|
|
1021
|
-
} else if evt.
|
|
1022
|
-
receipt.GroupJID = evt.
|
|
1057
|
+
if evt.Chat.Server == types.BroadcastServer {
|
|
1058
|
+
receipt.JID = evt.BroadcastListOwner.ToNonAD().String()
|
|
1059
|
+
} else if evt.IsGroup {
|
|
1060
|
+
receipt.GroupJID = evt.Chat.ToNonAD().String()
|
|
1023
1061
|
} else if receipt.IsCarbon {
|
|
1024
|
-
receipt.JID = evt.
|
|
1062
|
+
receipt.JID = evt.Chat.ToNonAD().String()
|
|
1025
1063
|
}
|
|
1026
1064
|
|
|
1027
1065
|
switch evt.Type {
|
|
@@ -1054,14 +1092,15 @@ type Group struct {
|
|
|
1054
1092
|
Subject GroupSubject // The longer-form, user-defined description for this group.
|
|
1055
1093
|
Nickname string // Our own nickname in this group-chat.
|
|
1056
1094
|
Participants []GroupParticipant // The list of participant contacts for this group, including ourselves.
|
|
1095
|
+
InviteCode string // The code for inviting members to this group-chat.
|
|
1057
1096
|
}
|
|
1058
1097
|
|
|
1059
1098
|
// A GroupSubject represents the user-defined group description and attached metadata thereof, for a
|
|
1060
1099
|
// given [Group].
|
|
1061
1100
|
type GroupSubject struct {
|
|
1062
|
-
Subject
|
|
1063
|
-
SetAt
|
|
1064
|
-
|
|
1101
|
+
Subject string // The user-defined group description.
|
|
1102
|
+
SetAt int64 // The exact time this group description was set at, as a timestamp.
|
|
1103
|
+
SetBy string // The name of the user that set the subject.
|
|
1065
1104
|
}
|
|
1066
1105
|
|
|
1067
1106
|
// GroupParticipantAction represents the distinct set of actions that can be taken when encountering
|
|
@@ -1091,10 +1130,11 @@ func (a GroupParticipantAction) toParticipantChange() whatsmeow.ParticipantChang
|
|
|
1091
1130
|
}
|
|
1092
1131
|
|
|
1093
1132
|
// A GroupParticipant represents a contact who is currently joined in a given group. Participants in
|
|
1094
|
-
// WhatsApp can
|
|
1133
|
+
// WhatsApp can generally be derived back to their individual [Contact]; there are no anonymous groups
|
|
1095
1134
|
// in WhatsApp.
|
|
1096
1135
|
type GroupParticipant struct {
|
|
1097
1136
|
JID string // The WhatsApp JID for this participant.
|
|
1137
|
+
Nickname string // The user-set name for this participant, typically only set for anonymous participants.
|
|
1098
1138
|
Affiliation GroupAffiliation // The set of priviledges given to this specific participant.
|
|
1099
1139
|
Action GroupParticipantAction // The specific action to take for this participant; typically to add.
|
|
1100
1140
|
}
|
|
@@ -1102,35 +1142,42 @@ type GroupParticipant struct {
|
|
|
1102
1142
|
// NewGroupParticipant returns a [GroupParticipant], filling fields from the internal participant
|
|
1103
1143
|
// type. This is a no-op if [types.GroupParticipant.Error] is non-zero, and other fields may only
|
|
1104
1144
|
// be set optionally.
|
|
1105
|
-
func newGroupParticipant(
|
|
1106
|
-
if
|
|
1145
|
+
func newGroupParticipant(ctx context.Context, client *whatsmeow.Client, participant types.GroupParticipant) GroupParticipant {
|
|
1146
|
+
if participant.Error > 0 {
|
|
1107
1147
|
return GroupParticipant{}
|
|
1108
1148
|
}
|
|
1109
|
-
var
|
|
1110
|
-
|
|
1111
|
-
affiliation = GroupAffiliationOwner
|
|
1112
|
-
} else if p.IsAdmin {
|
|
1113
|
-
affiliation = GroupAffiliationAdmin
|
|
1149
|
+
var p = GroupParticipant{
|
|
1150
|
+
JID: participant.JID.ToNonAD().String(),
|
|
1114
1151
|
}
|
|
1115
|
-
|
|
1116
|
-
|
|
1117
|
-
|
|
1152
|
+
if participant.IsSuperAdmin {
|
|
1153
|
+
p.Affiliation = GroupAffiliationOwner
|
|
1154
|
+
} else if participant.IsAdmin {
|
|
1155
|
+
p.Affiliation = GroupAffiliationAdmin
|
|
1156
|
+
}
|
|
1157
|
+
if IsAnonymousJID(p.JID) {
|
|
1158
|
+
if c, err := client.Store.Contacts.GetContact(ctx, participant.JID); err == nil {
|
|
1159
|
+
p.Nickname = c.PushName
|
|
1160
|
+
}
|
|
1118
1161
|
}
|
|
1162
|
+
return p
|
|
1119
1163
|
}
|
|
1120
1164
|
|
|
1121
1165
|
// NewGroupEvent returns event data meant for [Session.propagateEvent] for the primive group event
|
|
1122
1166
|
// given. Group data returned by this function can be partial, and callers should take care to only
|
|
1123
1167
|
// handle non-empty values.
|
|
1124
|
-
func newGroupEvent(evt *events.GroupInfo) (EventKind, *EventPayload) {
|
|
1168
|
+
func newGroupEvent(ctx context.Context, client *whatsmeow.Client, evt *events.GroupInfo) (EventKind, *EventPayload) {
|
|
1125
1169
|
var group = Group{JID: evt.JID.ToNonAD().String()}
|
|
1126
1170
|
if evt.Name != nil {
|
|
1127
1171
|
group.Name = evt.Name.Name
|
|
1128
1172
|
}
|
|
1129
1173
|
if evt.Topic != nil {
|
|
1174
|
+
topicJID := getPreferredJID(ctx, client, evt.Topic.TopicSetBy, evt.Topic.TopicSetByPN)
|
|
1130
1175
|
group.Subject = GroupSubject{
|
|
1131
|
-
Subject:
|
|
1132
|
-
SetAt:
|
|
1133
|
-
|
|
1176
|
+
Subject: evt.Topic.Topic,
|
|
1177
|
+
SetAt: evt.Topic.TopicSetAt.Unix(),
|
|
1178
|
+
}
|
|
1179
|
+
if c, err := client.Store.Contacts.GetContact(ctx, topicJID); err == nil {
|
|
1180
|
+
group.Subject.SetBy = c.PushName
|
|
1134
1181
|
}
|
|
1135
1182
|
}
|
|
1136
1183
|
for _, p := range evt.Join {
|
|
@@ -1165,26 +1212,32 @@ func newGroupEvent(evt *events.GroupInfo) (EventKind, *EventPayload) {
|
|
|
1165
1212
|
// NewGroup returns a concrete [Group] for the primitive data given. This function will generally
|
|
1166
1213
|
// populate fields with as much data as is available from the remote, and is therefore should not
|
|
1167
1214
|
// be called when partial data is to be returned.
|
|
1168
|
-
func newGroup(client *whatsmeow.Client, info *types.GroupInfo) Group {
|
|
1215
|
+
func newGroup(ctx context.Context, client *whatsmeow.Client, info *types.GroupInfo) Group {
|
|
1169
1216
|
var participants []GroupParticipant
|
|
1170
1217
|
for i := range info.Participants {
|
|
1171
|
-
p := newGroupParticipant(info.Participants[i])
|
|
1218
|
+
p := newGroupParticipant(ctx, client, info.Participants[i])
|
|
1172
1219
|
if p.JID == "" {
|
|
1173
1220
|
continue
|
|
1174
1221
|
}
|
|
1175
1222
|
participants = append(participants, p)
|
|
1176
1223
|
}
|
|
1177
|
-
|
|
1224
|
+
|
|
1225
|
+
var topicJID = getPreferredJID(ctx, client, info.TopicSetBy, info.TopicSetByPN)
|
|
1226
|
+
var group = Group{
|
|
1178
1227
|
JID: info.JID.ToNonAD().String(),
|
|
1179
|
-
Name: info.
|
|
1228
|
+
Name: info.Name,
|
|
1180
1229
|
Subject: GroupSubject{
|
|
1181
|
-
Subject:
|
|
1182
|
-
SetAt:
|
|
1183
|
-
SetByJID: info.TopicSetBy.ToNonAD().String(),
|
|
1230
|
+
Subject: info.Topic,
|
|
1231
|
+
SetAt: info.TopicSetAt.Unix(),
|
|
1184
1232
|
},
|
|
1185
1233
|
Nickname: client.Store.PushName,
|
|
1186
1234
|
Participants: participants,
|
|
1187
1235
|
}
|
|
1236
|
+
if c, err := client.Store.Contacts.GetContact(ctx, topicJID); err == nil {
|
|
1237
|
+
group.Subject.SetBy = c.PushName
|
|
1238
|
+
}
|
|
1239
|
+
|
|
1240
|
+
return group
|
|
1188
1241
|
}
|
|
1189
1242
|
|
|
1190
1243
|
// CallState represents the state of the call to synchronize with.
|
|
@@ -1229,3 +1282,25 @@ func newCallEvent(state CallState, meta types.BasicCallMeta) (EventKind, *EventP
|
|
|
1229
1282
|
Timestamp: meta.Timestamp.Unix(),
|
|
1230
1283
|
}}
|
|
1231
1284
|
}
|
|
1285
|
+
|
|
1286
|
+
// GetPreferredJID returns one of the [type.JID] values for the given senders, preferring the first
|
|
1287
|
+
// non-empty, non-hidden sender; if none are found, mappings from LID to JID are tried, or otherwise,
|
|
1288
|
+
// the first JID given is returned.
|
|
1289
|
+
func getPreferredJID(ctx context.Context, client *whatsmeow.Client, def types.JID, alt ...types.JID) types.JID {
|
|
1290
|
+
var jids = append([]types.JID{def}, alt...)
|
|
1291
|
+
for _, s := range jids {
|
|
1292
|
+
if !s.IsEmpty() && s.Server != types.HiddenUserServer {
|
|
1293
|
+
return s
|
|
1294
|
+
}
|
|
1295
|
+
}
|
|
1296
|
+
|
|
1297
|
+
for _, s := range jids {
|
|
1298
|
+
if !s.IsEmpty() && s.Server == types.HiddenUserServer {
|
|
1299
|
+
if p, err := client.Store.LIDs.GetPNForLID(ctx, s); err == nil {
|
|
1300
|
+
return p
|
|
1301
|
+
}
|
|
1302
|
+
}
|
|
1303
|
+
}
|
|
1304
|
+
|
|
1305
|
+
return def
|
|
1306
|
+
}
|
slidge_whatsapp/gateway.go
CHANGED
|
@@ -2,9 +2,7 @@ package whatsapp
|
|
|
2
2
|
|
|
3
3
|
import (
|
|
4
4
|
// Standard library.
|
|
5
|
-
"
|
|
6
|
-
"log/slog"
|
|
7
|
-
"os"
|
|
5
|
+
"context"
|
|
8
6
|
"runtime"
|
|
9
7
|
|
|
10
8
|
// Internal packages.
|
|
@@ -39,6 +37,12 @@ func (d LinkedDevice) JID() types.JID {
|
|
|
39
37
|
return jid
|
|
40
38
|
}
|
|
41
39
|
|
|
40
|
+
// IsAnonymousJID returns true if the JID given is not addressible, that is, if it's actually a LID.
|
|
41
|
+
func IsAnonymousJID(id string) bool {
|
|
42
|
+
jid, _ := types.ParseJID(id)
|
|
43
|
+
return jid.Server == types.HiddenUserServer
|
|
44
|
+
}
|
|
45
|
+
|
|
42
46
|
// A Gateway represents a persistent process for establishing individual sessions between linked
|
|
43
47
|
// devices and WhatsApp.
|
|
44
48
|
type Gateway struct {
|
|
@@ -62,14 +66,8 @@ func NewGateway() *Gateway {
|
|
|
62
66
|
// Init performs initialization procedures for the Gateway, and is expected to be run before any
|
|
63
67
|
// calls to [Gateway.Session].
|
|
64
68
|
func (w *Gateway) Init() error {
|
|
65
|
-
w.logger =
|
|
66
|
-
|
|
67
|
-
logger: slog.New(
|
|
68
|
-
slog.NewTextHandler(os.Stdout, &slog.HandlerOptions{Level: logLevel(w.LogLevel)}),
|
|
69
|
-
),
|
|
70
|
-
}
|
|
71
|
-
|
|
72
|
-
container, err := sqlstore.New("sqlite3", w.DBPath, w.logger)
|
|
69
|
+
w.logger = walog.Stdout("slidge", w.LogLevel, false)
|
|
70
|
+
container, err := sqlstore.New(context.Background(), "sqlite3", w.DBPath, w.logger)
|
|
73
71
|
if err != nil {
|
|
74
72
|
return err
|
|
75
73
|
}
|
|
@@ -79,7 +77,9 @@ func (w *Gateway) Init() error {
|
|
|
79
77
|
}
|
|
80
78
|
|
|
81
79
|
if w.TempDir != "" {
|
|
82
|
-
media.SetTempDirectory(w.TempDir)
|
|
80
|
+
if err := media.SetTempDirectory(w.TempDir); err != nil {
|
|
81
|
+
return err
|
|
82
|
+
}
|
|
83
83
|
}
|
|
84
84
|
|
|
85
85
|
w.callChan = make(chan func(), maxConcurrentGatewayCalls)
|
|
@@ -107,7 +107,8 @@ func (w *Gateway) NewSession(device LinkedDevice) *Session {
|
|
|
107
107
|
// CleanupSession will remove all invalid and obsolete references to the given device, and should be
|
|
108
108
|
// used when pairing a new device or unregistering from the Gateway.
|
|
109
109
|
func (w *Gateway) CleanupSession(device LinkedDevice) error {
|
|
110
|
-
|
|
110
|
+
ctx := context.Background()
|
|
111
|
+
devices, err := w.container.GetAllDevices(ctx)
|
|
111
112
|
if err != nil {
|
|
112
113
|
return err
|
|
113
114
|
}
|
|
@@ -115,67 +116,14 @@ func (w *Gateway) CleanupSession(device LinkedDevice) error {
|
|
|
115
116
|
for _, d := range devices {
|
|
116
117
|
if d.ID == nil {
|
|
117
118
|
w.logger.Infof("Removing invalid device %s from database", d.ID.String())
|
|
118
|
-
_ = d.Delete()
|
|
119
|
+
_ = d.Delete(ctx)
|
|
119
120
|
} else if device.ID != "" {
|
|
120
121
|
if jid := device.JID(); d.ID.ToNonAD() == jid.ToNonAD() && *d.ID != jid {
|
|
121
122
|
w.logger.Infof("Removing obsolete device %s from database", d.ID.String())
|
|
122
|
-
_ = d.Delete()
|
|
123
|
+
_ = d.Delete(ctx)
|
|
123
124
|
}
|
|
124
125
|
}
|
|
125
126
|
}
|
|
126
127
|
|
|
127
128
|
return nil
|
|
128
129
|
}
|
|
129
|
-
|
|
130
|
-
// A LogLevel represents a mapping between Python standard logging levels and Go standard logging
|
|
131
|
-
// levels.
|
|
132
|
-
type logLevel string
|
|
133
|
-
|
|
134
|
-
var _ slog.Leveler = logLevel("")
|
|
135
|
-
|
|
136
|
-
// Level returns the Go equivalent logging level for the Python logging level represented.
|
|
137
|
-
func (l logLevel) Level() slog.Level {
|
|
138
|
-
switch l {
|
|
139
|
-
case "FATAL", "CRITICAL", "ERROR":
|
|
140
|
-
return slog.LevelError
|
|
141
|
-
case "WARN", "WARNING":
|
|
142
|
-
return slog.LevelWarn
|
|
143
|
-
case "DEBUG":
|
|
144
|
-
return slog.LevelDebug
|
|
145
|
-
default:
|
|
146
|
-
return slog.LevelInfo
|
|
147
|
-
}
|
|
148
|
-
}
|
|
149
|
-
|
|
150
|
-
// A Logger represents a mapping between a WhatsMeow logger and Go standard logging functions.
|
|
151
|
-
type logger struct {
|
|
152
|
-
module string
|
|
153
|
-
logger *slog.Logger
|
|
154
|
-
}
|
|
155
|
-
|
|
156
|
-
var _ walog.Logger = logger{}
|
|
157
|
-
|
|
158
|
-
// Errorf handles the given message as representing a (typically) fatal error.
|
|
159
|
-
func (l logger) Errorf(msg string, args ...interface{}) {
|
|
160
|
-
l.logger.Error(fmt.Sprintf(msg, args...))
|
|
161
|
-
}
|
|
162
|
-
|
|
163
|
-
// Warn handles the given message as representing a non-fatal error or warning thereof.
|
|
164
|
-
func (l logger) Warnf(msg string, args ...interface{}) {
|
|
165
|
-
l.logger.Warn(fmt.Sprintf(msg, args...))
|
|
166
|
-
}
|
|
167
|
-
|
|
168
|
-
// Infof handles the given message as representing an informational notice.
|
|
169
|
-
func (l logger) Infof(msg string, args ...interface{}) {
|
|
170
|
-
l.logger.Info(fmt.Sprintf(msg, args...))
|
|
171
|
-
}
|
|
172
|
-
|
|
173
|
-
// Debugf handles the given message as representing an internal-only debug message.
|
|
174
|
-
func (l logger) Debugf(msg string, args ...interface{}) {
|
|
175
|
-
l.logger.Debug(fmt.Sprintf(msg, args...))
|
|
176
|
-
}
|
|
177
|
-
|
|
178
|
-
// Sub is a no-op and will return the receiver itself.
|
|
179
|
-
func (l logger) Sub(module string) walog.Logger {
|
|
180
|
-
return logger{logger: l.logger.With(slog.String("module", l.module+"."+module))}
|
|
181
|
-
}
|
slidge_whatsapp/gateway.py
CHANGED
|
@@ -2,7 +2,7 @@ from logging import getLevelName, getLogger
|
|
|
2
2
|
from pathlib import Path
|
|
3
3
|
from typing import TYPE_CHECKING
|
|
4
4
|
|
|
5
|
-
from slidge import BaseGateway, FormField,
|
|
5
|
+
from slidge import BaseGateway, FormField, global_config
|
|
6
6
|
|
|
7
7
|
from . import config
|
|
8
8
|
from .generated import whatsapp
|
|
@@ -13,7 +13,7 @@ if TYPE_CHECKING:
|
|
|
13
13
|
REGISTRATION_INSTRUCTIONS = (
|
|
14
14
|
"Continue and scan the resulting QR codes on your main device, or alternatively, "
|
|
15
15
|
"use the 'pair-phone' command to complete registration. More information at "
|
|
16
|
-
"https://slidge.im/slidge-whatsapp/user.html"
|
|
16
|
+
"https://slidge.im/docs/slidge-whatsapp/main/user/registration.html"
|
|
17
17
|
)
|
|
18
18
|
|
|
19
19
|
WELCOME_MESSAGE = (
|
|
@@ -49,7 +49,7 @@ class Gateway(BaseGateway):
|
|
|
49
49
|
|
|
50
50
|
assert config.DB_PATH is not None
|
|
51
51
|
Path(config.DB_PATH.parent).mkdir(exist_ok=True)
|
|
52
|
-
self.whatsapp.DBPath = str(config.DB_PATH)
|
|
52
|
+
self.whatsapp.DBPath = str(config.DB_PATH) + config.DB_PARAMS
|
|
53
53
|
|
|
54
54
|
(global_config.HOME_DIR / "tmp").mkdir(exist_ok=True)
|
|
55
55
|
self.whatsapp.TempDir = str(global_config.HOME_DIR / "tmp")
|
|
@@ -62,13 +62,12 @@ class Gateway(BaseGateway):
|
|
|
62
62
|
"""
|
|
63
63
|
pass
|
|
64
64
|
|
|
65
|
-
async def unregister(self,
|
|
65
|
+
async def unregister(self, session: "Session"): # type:ignore[override]
|
|
66
66
|
"""
|
|
67
67
|
Logout from the active WhatsApp session. This will also force a remote log-out, and thus
|
|
68
68
|
require pairing on next login. For simply disconnecting the active session, look at the
|
|
69
69
|
:meth:`.Session.disconnect` function.
|
|
70
70
|
"""
|
|
71
|
-
session: "Session" = self.get_session_from_user(user) # type:ignore
|
|
72
71
|
session.whatsapp.Logout()
|
|
73
72
|
try:
|
|
74
73
|
device_id = session.user.legacy_module_data["device_id"]
|