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.

Files changed (484) hide show
  1. slidge_whatsapp/config.py +3 -0
  2. slidge_whatsapp/contact.py +13 -3
  3. slidge_whatsapp/event.go +135 -60
  4. slidge_whatsapp/gateway.go +16 -68
  5. slidge_whatsapp/gateway.py +4 -5
  6. slidge_whatsapp/generated/_whatsapp.cpython-311-aarch64-linux-gnu.h +198 -181
  7. slidge_whatsapp/generated/_whatsapp.cpython-311-aarch64-linux-gnu.so +0 -0
  8. slidge_whatsapp/generated/build.py +166 -152
  9. slidge_whatsapp/generated/whatsapp.c +1804 -1532
  10. slidge_whatsapp/generated/whatsapp.go +1150 -1039
  11. slidge_whatsapp/generated/whatsapp.py +1243 -1118
  12. slidge_whatsapp/generated/whatsapp_go.h +198 -181
  13. slidge_whatsapp/go.mod +21 -15
  14. slidge_whatsapp/go.sum +49 -31
  15. slidge_whatsapp/group.py +34 -30
  16. slidge_whatsapp/media/media.go +22 -12
  17. slidge_whatsapp/session.go +105 -81
  18. slidge_whatsapp/session.py +46 -14
  19. slidge_whatsapp/vendor/github.com/beeper/argo-go/LICENSE +9 -0
  20. slidge_whatsapp/vendor/github.com/beeper/argo-go/block/blockreader.go +329 -0
  21. slidge_whatsapp/vendor/github.com/beeper/argo-go/block/blockwriter.go +417 -0
  22. slidge_whatsapp/vendor/github.com/beeper/argo-go/codec/decoder.go +652 -0
  23. slidge_whatsapp/vendor/github.com/beeper/argo-go/codec/encoder.go +985 -0
  24. slidge_whatsapp/vendor/github.com/beeper/argo-go/header/header.go +135 -0
  25. slidge_whatsapp/vendor/github.com/beeper/argo-go/internal/util/util.go +133 -0
  26. slidge_whatsapp/vendor/github.com/beeper/argo-go/label/label.go +384 -0
  27. slidge_whatsapp/vendor/github.com/beeper/argo-go/label/wiremarkers.go +37 -0
  28. slidge_whatsapp/vendor/github.com/beeper/argo-go/pkg/bitset/bitset.go +197 -0
  29. slidge_whatsapp/vendor/github.com/beeper/argo-go/pkg/buf/buf.go +420 -0
  30. slidge_whatsapp/vendor/github.com/beeper/argo-go/pkg/varint/varint.go +246 -0
  31. slidge_whatsapp/vendor/github.com/beeper/argo-go/wire/wire.go +614 -0
  32. slidge_whatsapp/vendor/github.com/beeper/argo-go/wirecodec/decode.go +341 -0
  33. slidge_whatsapp/vendor/github.com/ebitengine/purego/dlfcn.go +4 -4
  34. slidge_whatsapp/vendor/github.com/ebitengine/purego/dlfcn_darwin.go +0 -5
  35. slidge_whatsapp/vendor/github.com/ebitengine/purego/internal/fakecgo/go_libinit.go +3 -0
  36. slidge_whatsapp/vendor/github.com/ebitengine/purego/internal/fakecgo/symbols.go +40 -20
  37. slidge_whatsapp/vendor/github.com/elliotchance/orderedmap/v3/LICENSE +21 -0
  38. slidge_whatsapp/vendor/github.com/elliotchance/orderedmap/v3/list.go +95 -0
  39. slidge_whatsapp/vendor/github.com/elliotchance/orderedmap/v3/orderedmap.go +187 -0
  40. slidge_whatsapp/vendor/github.com/gen2brain/go-fitz/fitz.go +1 -0
  41. slidge_whatsapp/vendor/github.com/gen2brain/go-fitz/fitz_cgo.go +3 -0
  42. slidge_whatsapp/vendor/github.com/gen2brain/go-fitz/fitz_nocgo.go +4 -5
  43. slidge_whatsapp/vendor/github.com/gen2brain/go-fitz/purego_darwin.go +11 -1
  44. slidge_whatsapp/vendor/github.com/gen2brain/go-fitz/purego_linux.go +10 -0
  45. slidge_whatsapp/vendor/github.com/gen2brain/go-fitz/purego_windows.go +12 -0
  46. slidge_whatsapp/vendor/github.com/jupiterrider/ffi/.gitignore +0 -2
  47. slidge_whatsapp/vendor/github.com/jupiterrider/ffi/CHANGELOG.md +44 -1
  48. slidge_whatsapp/vendor/github.com/jupiterrider/ffi/COPYRIGHT.txt +6 -1
  49. slidge_whatsapp/vendor/github.com/jupiterrider/ffi/README.md +14 -17
  50. slidge_whatsapp/vendor/github.com/jupiterrider/ffi/abi.go +1 -1
  51. slidge_whatsapp/vendor/github.com/jupiterrider/ffi/abi2.go +7 -0
  52. slidge_whatsapp/vendor/github.com/jupiterrider/ffi/assets/libffi/LICENSE +21 -0
  53. slidge_whatsapp/vendor/github.com/jupiterrider/ffi/assets/libffi/darwin_amd64/libffi.8.dylib +0 -0
  54. slidge_whatsapp/vendor/github.com/jupiterrider/ffi/assets/libffi/darwin_arm64/libffi.8.dylib +0 -0
  55. slidge_whatsapp/vendor/github.com/jupiterrider/ffi/assets/libffi/windows_amd64/libffi-8.dll +0 -0
  56. slidge_whatsapp/vendor/github.com/jupiterrider/ffi/cif.go +15 -0
  57. slidge_whatsapp/vendor/github.com/jupiterrider/ffi/cif_arm64.go +16 -0
  58. slidge_whatsapp/vendor/github.com/jupiterrider/ffi/embed.go +49 -0
  59. slidge_whatsapp/vendor/github.com/jupiterrider/ffi/embed_darwin_amd64.go +10 -0
  60. slidge_whatsapp/vendor/github.com/jupiterrider/ffi/embed_darwin_arm64.go +10 -0
  61. slidge_whatsapp/vendor/github.com/jupiterrider/ffi/embed_windows_amd64.go +10 -0
  62. slidge_whatsapp/vendor/github.com/jupiterrider/ffi/ffi.go +53 -15
  63. slidge_whatsapp/vendor/github.com/jupiterrider/ffi/fun.go +10 -2
  64. slidge_whatsapp/vendor/github.com/jupiterrider/ffi/init.go +22 -9
  65. slidge_whatsapp/vendor/github.com/jupiterrider/ffi/lib.go +1 -1
  66. slidge_whatsapp/vendor/github.com/jupiterrider/ffi/lib_unix.go +1 -1
  67. slidge_whatsapp/vendor/github.com/jupiterrider/ffi/lib_windows.go +1 -1
  68. slidge_whatsapp/vendor/github.com/mattn/go-sqlite3/README.md +4 -7
  69. slidge_whatsapp/vendor/github.com/mattn/go-sqlite3/callback.go +2 -1
  70. slidge_whatsapp/vendor/github.com/mattn/go-sqlite3/sqlite3-binding.c +11545 -6680
  71. slidge_whatsapp/vendor/github.com/mattn/go-sqlite3/sqlite3-binding.h +527 -273
  72. slidge_whatsapp/vendor/github.com/mattn/go-sqlite3/sqlite3.go +57 -23
  73. slidge_whatsapp/vendor/github.com/mattn/go-sqlite3/sqlite3_opt_unlock_notify.c +4 -0
  74. slidge_whatsapp/vendor/github.com/mattn/go-sqlite3/sqlite3_opt_unlock_notify.go +4 -0
  75. slidge_whatsapp/vendor/github.com/mattn/go-sqlite3/sqlite3_opt_userauth.go +13 -140
  76. slidge_whatsapp/vendor/github.com/mattn/go-sqlite3/sqlite3ext.h +4 -0
  77. slidge_whatsapp/vendor/github.com/petermattis/goid/.gitignore +4 -0
  78. slidge_whatsapp/vendor/github.com/petermattis/goid/LICENSE +202 -0
  79. slidge_whatsapp/vendor/github.com/petermattis/goid/README.md +4 -0
  80. slidge_whatsapp/vendor/github.com/petermattis/goid/goid.go +35 -0
  81. slidge_whatsapp/vendor/github.com/petermattis/goid/goid_gccgo.go +26 -0
  82. slidge_whatsapp/vendor/github.com/petermattis/goid/goid_go1.3.c +23 -0
  83. slidge_whatsapp/vendor/github.com/petermattis/goid/goid_go1.3.go +22 -0
  84. slidge_whatsapp/vendor/github.com/petermattis/goid/goid_go1.4.go +35 -0
  85. slidge_whatsapp/vendor/github.com/petermattis/goid/goid_go1.4.s +18 -0
  86. slidge_whatsapp/vendor/github.com/petermattis/goid/goid_go1.5.go +28 -0
  87. slidge_whatsapp/vendor/github.com/petermattis/goid/goid_go1.5.s +44 -0
  88. slidge_whatsapp/vendor/github.com/petermattis/goid/goid_slow.go +24 -0
  89. slidge_whatsapp/vendor/github.com/petermattis/goid/runtime_gccgo_go1.8.go +17 -0
  90. slidge_whatsapp/vendor/github.com/petermattis/goid/runtime_go1.23.go +38 -0
  91. slidge_whatsapp/vendor/github.com/petermattis/goid/runtime_go1.25.go +37 -0
  92. slidge_whatsapp/vendor/github.com/petermattis/goid/runtime_go1.5.go +57 -0
  93. slidge_whatsapp/vendor/github.com/petermattis/goid/runtime_go1.6.go +43 -0
  94. slidge_whatsapp/vendor/github.com/petermattis/goid/runtime_go1.9.go +37 -0
  95. slidge_whatsapp/vendor/github.com/rs/zerolog/CONTRIBUTING.md +43 -0
  96. slidge_whatsapp/vendor/github.com/rs/zerolog/README.md +31 -0
  97. slidge_whatsapp/vendor/github.com/rs/zerolog/console.go +20 -5
  98. slidge_whatsapp/vendor/github.com/rs/zerolog/log/log.go +131 -0
  99. slidge_whatsapp/vendor/github.com/rs/zerolog/log.go +1 -1
  100. slidge_whatsapp/vendor/github.com/rs/zerolog/sampler.go +4 -1
  101. slidge_whatsapp/vendor/github.com/rs/zerolog/writer.go +9 -0
  102. slidge_whatsapp/vendor/github.com/vektah/gqlparser/v2/LICENSE +19 -0
  103. slidge_whatsapp/vendor/github.com/vektah/gqlparser/v2/ast/argmap.go +37 -0
  104. slidge_whatsapp/vendor/github.com/vektah/gqlparser/v2/ast/collections.go +148 -0
  105. slidge_whatsapp/vendor/github.com/vektah/gqlparser/v2/ast/comment.go +31 -0
  106. slidge_whatsapp/vendor/github.com/vektah/gqlparser/v2/ast/decode.go +216 -0
  107. slidge_whatsapp/vendor/github.com/vektah/gqlparser/v2/ast/definition.go +110 -0
  108. slidge_whatsapp/vendor/github.com/vektah/gqlparser/v2/ast/directive.go +43 -0
  109. slidge_whatsapp/vendor/github.com/vektah/gqlparser/v2/ast/document.go +89 -0
  110. slidge_whatsapp/vendor/github.com/vektah/gqlparser/v2/ast/dumper.go +159 -0
  111. slidge_whatsapp/vendor/github.com/vektah/gqlparser/v2/ast/fragment.go +41 -0
  112. slidge_whatsapp/vendor/github.com/vektah/gqlparser/v2/ast/operation.go +32 -0
  113. slidge_whatsapp/vendor/github.com/vektah/gqlparser/v2/ast/path.go +72 -0
  114. slidge_whatsapp/vendor/github.com/vektah/gqlparser/v2/ast/selection.go +41 -0
  115. slidge_whatsapp/vendor/github.com/vektah/gqlparser/v2/ast/source.go +19 -0
  116. slidge_whatsapp/vendor/github.com/vektah/gqlparser/v2/ast/type.go +68 -0
  117. slidge_whatsapp/vendor/github.com/vektah/gqlparser/v2/ast/value.go +122 -0
  118. slidge_whatsapp/vendor/go.mau.fi/libsignal/groups/GroupCipher.go +17 -6
  119. slidge_whatsapp/vendor/go.mau.fi/libsignal/groups/GroupSessionBuilder.go +17 -7
  120. slidge_whatsapp/vendor/go.mau.fi/libsignal/groups/state/store/SenderKeyStore.go +4 -2
  121. slidge_whatsapp/vendor/go.mau.fi/libsignal/keys/chain/ChainKey.go +1 -0
  122. slidge_whatsapp/vendor/go.mau.fi/libsignal/keys/identity/IdentityKey.go +1 -0
  123. slidge_whatsapp/vendor/go.mau.fi/libsignal/logger/DefaultLogger.go +2 -2
  124. slidge_whatsapp/vendor/go.mau.fi/libsignal/serialize/FingerprintProtocol.pb.go +3 -2
  125. slidge_whatsapp/vendor/go.mau.fi/libsignal/serialize/LocalStorageProtocol.pb.go +3 -2
  126. slidge_whatsapp/vendor/go.mau.fi/libsignal/serialize/WhisperTextProtocol.pb.go +3 -2
  127. slidge_whatsapp/vendor/go.mau.fi/libsignal/session/Session.go +41 -17
  128. slidge_whatsapp/vendor/go.mau.fi/libsignal/session/SessionCipher.go +64 -30
  129. slidge_whatsapp/vendor/go.mau.fi/libsignal/state/store/IdentityKeyStore.go +5 -3
  130. slidge_whatsapp/vendor/go.mau.fi/libsignal/state/store/MessageKeyStore.go +6 -4
  131. slidge_whatsapp/vendor/go.mau.fi/libsignal/state/store/PreKeyStore.go +6 -4
  132. slidge_whatsapp/vendor/go.mau.fi/libsignal/state/store/SessionStore.go +8 -6
  133. slidge_whatsapp/vendor/go.mau.fi/libsignal/state/store/SignedPreKeyStore.go +7 -5
  134. slidge_whatsapp/vendor/go.mau.fi/util/dbutil/connlog.go +257 -0
  135. slidge_whatsapp/vendor/go.mau.fi/util/dbutil/database.go +309 -0
  136. slidge_whatsapp/vendor/go.mau.fi/util/dbutil/iter.go +233 -0
  137. slidge_whatsapp/vendor/go.mau.fi/util/dbutil/json.go +47 -0
  138. slidge_whatsapp/vendor/go.mau.fi/util/dbutil/log.go +129 -0
  139. slidge_whatsapp/vendor/go.mau.fi/util/dbutil/massinsert.go +164 -0
  140. slidge_whatsapp/vendor/go.mau.fi/util/dbutil/queryhelper.go +137 -0
  141. slidge_whatsapp/vendor/go.mau.fi/util/dbutil/reflectscan.go +30 -0
  142. slidge_whatsapp/vendor/go.mau.fi/util/dbutil/transaction.go +180 -0
  143. slidge_whatsapp/vendor/go.mau.fi/util/dbutil/upgrades.go +250 -0
  144. slidge_whatsapp/vendor/go.mau.fi/util/dbutil/upgradetable.go +331 -0
  145. slidge_whatsapp/vendor/go.mau.fi/util/exerrors/dualerror.go +33 -0
  146. slidge_whatsapp/vendor/go.mau.fi/util/exerrors/must.go +23 -0
  147. slidge_whatsapp/vendor/go.mau.fi/util/exhttp/cors.go +32 -0
  148. slidge_whatsapp/vendor/go.mau.fi/util/exhttp/handleerrors.go +98 -0
  149. slidge_whatsapp/vendor/go.mau.fi/util/exhttp/json.go +36 -0
  150. slidge_whatsapp/vendor/go.mau.fi/util/exhttp/middleware.go +30 -0
  151. slidge_whatsapp/vendor/go.mau.fi/util/exhttp/networkerror.go +38 -0
  152. slidge_whatsapp/vendor/go.mau.fi/util/exstrings/stringutil.go +104 -0
  153. slidge_whatsapp/vendor/go.mau.fi/util/exsync/event.go +104 -0
  154. slidge_whatsapp/vendor/go.mau.fi/util/exsync/returnonce.go +25 -0
  155. slidge_whatsapp/vendor/go.mau.fi/util/exsync/ringbuffer.go +139 -0
  156. slidge_whatsapp/vendor/go.mau.fi/util/exsync/syncmap.go +94 -0
  157. slidge_whatsapp/vendor/go.mau.fi/util/exsync/syncset.go +136 -0
  158. slidge_whatsapp/vendor/go.mau.fi/util/exzerolog/callermarshal.go +28 -0
  159. slidge_whatsapp/vendor/go.mau.fi/util/exzerolog/defaults.go +32 -0
  160. slidge_whatsapp/vendor/go.mau.fi/util/exzerolog/generics.go +45 -0
  161. slidge_whatsapp/vendor/go.mau.fi/util/exzerolog/writer.go +81 -0
  162. slidge_whatsapp/vendor/go.mau.fi/util/ptr/ptr.go +43 -0
  163. slidge_whatsapp/vendor/go.mau.fi/whatsmeow/.pre-commit-config.yaml +3 -3
  164. slidge_whatsapp/vendor/go.mau.fi/whatsmeow/appstate/decode.go +27 -26
  165. slidge_whatsapp/vendor/go.mau.fi/whatsmeow/appstate/encode.go +4 -3
  166. slidge_whatsapp/vendor/go.mau.fi/whatsmeow/appstate/hash.go +1 -1
  167. slidge_whatsapp/vendor/go.mau.fi/whatsmeow/appstate/keys.go +5 -4
  168. slidge_whatsapp/vendor/go.mau.fi/whatsmeow/appstate.go +32 -26
  169. slidge_whatsapp/vendor/go.mau.fi/whatsmeow/argo/argo-wire-type-store.argo +63 -0
  170. slidge_whatsapp/vendor/go.mau.fi/whatsmeow/argo/argo.go +62 -0
  171. slidge_whatsapp/vendor/go.mau.fi/whatsmeow/argo/name-to-queryids.json +306 -0
  172. slidge_whatsapp/vendor/go.mau.fi/whatsmeow/armadillomessage.go +42 -8
  173. slidge_whatsapp/vendor/go.mau.fi/whatsmeow/binary/encoder.go +1 -1
  174. slidge_whatsapp/vendor/go.mau.fi/whatsmeow/broadcast.go +5 -4
  175. slidge_whatsapp/vendor/go.mau.fi/whatsmeow/call.go +2 -1
  176. slidge_whatsapp/vendor/go.mau.fi/whatsmeow/client.go +134 -55
  177. slidge_whatsapp/vendor/go.mau.fi/whatsmeow/connectionevents.go +34 -11
  178. slidge_whatsapp/vendor/go.mau.fi/whatsmeow/download-to-file.go +63 -30
  179. slidge_whatsapp/vendor/go.mau.fi/whatsmeow/download.go +78 -34
  180. slidge_whatsapp/vendor/go.mau.fi/whatsmeow/errors.go +4 -0
  181. slidge_whatsapp/vendor/go.mau.fi/whatsmeow/group.go +157 -55
  182. slidge_whatsapp/vendor/go.mau.fi/whatsmeow/internals.go +202 -154
  183. slidge_whatsapp/vendor/go.mau.fi/whatsmeow/keepalive.go +3 -2
  184. slidge_whatsapp/vendor/go.mau.fi/whatsmeow/mediaconn.go +5 -3
  185. slidge_whatsapp/vendor/go.mau.fi/whatsmeow/mediaretry.go +2 -1
  186. slidge_whatsapp/vendor/go.mau.fi/whatsmeow/message.go +448 -138
  187. slidge_whatsapp/vendor/go.mau.fi/whatsmeow/msgsecret.go +106 -31
  188. slidge_whatsapp/vendor/go.mau.fi/whatsmeow/newsletter.go +83 -7
  189. slidge_whatsapp/vendor/go.mau.fi/whatsmeow/notification.go +83 -43
  190. slidge_whatsapp/vendor/go.mau.fi/whatsmeow/pair-code.go +9 -6
  191. slidge_whatsapp/vendor/go.mau.fi/whatsmeow/pair.go +42 -18
  192. slidge_whatsapp/vendor/go.mau.fi/whatsmeow/prekeys.go +9 -5
  193. slidge_whatsapp/vendor/go.mau.fi/whatsmeow/presence.go +17 -7
  194. slidge_whatsapp/vendor/go.mau.fi/whatsmeow/privacysettings.go +10 -11
  195. slidge_whatsapp/vendor/go.mau.fi/whatsmeow/proto/extra.go +7 -0
  196. slidge_whatsapp/vendor/go.mau.fi/whatsmeow/proto/instamadilloAddMessage/InstamadilloAddMessage.pb.go +983 -0
  197. slidge_whatsapp/vendor/go.mau.fi/whatsmeow/proto/instamadilloAddMessage/InstamadilloAddMessage.proto +85 -0
  198. slidge_whatsapp/vendor/go.mau.fi/whatsmeow/proto/instamadilloAddMessage/extra.go +3 -0
  199. slidge_whatsapp/vendor/go.mau.fi/whatsmeow/proto/instamadilloCoreTypeActionLog/InstamadilloCoreTypeActionLog.pb.go +197 -0
  200. slidge_whatsapp/vendor/go.mau.fi/whatsmeow/proto/instamadilloCoreTypeActionLog/InstamadilloCoreTypeActionLog.proto +13 -0
  201. slidge_whatsapp/vendor/go.mau.fi/whatsmeow/proto/instamadilloCoreTypeAdminMessage/InstamadilloCoreTypeAdminMessage.pb.go +279 -0
  202. slidge_whatsapp/vendor/go.mau.fi/whatsmeow/proto/instamadilloCoreTypeAdminMessage/InstamadilloCoreTypeAdminMessage.proto +21 -0
  203. slidge_whatsapp/vendor/go.mau.fi/whatsmeow/proto/instamadilloCoreTypeCollection/InstamadilloCoreTypeCollection.pb.go +137 -0
  204. slidge_whatsapp/vendor/go.mau.fi/whatsmeow/proto/instamadilloCoreTypeCollection/InstamadilloCoreTypeCollection.proto +10 -0
  205. slidge_whatsapp/vendor/go.mau.fi/whatsmeow/proto/instamadilloCoreTypeLink/InstamadilloCoreTypeLink.pb.go +313 -0
  206. slidge_whatsapp/vendor/go.mau.fi/whatsmeow/proto/instamadilloCoreTypeLink/InstamadilloCoreTypeLink.proto +27 -0
  207. slidge_whatsapp/vendor/go.mau.fi/whatsmeow/proto/instamadilloCoreTypeMedia/InstamadilloCoreTypeMedia.pb.go +1299 -0
  208. slidge_whatsapp/vendor/go.mau.fi/whatsmeow/proto/instamadilloCoreTypeMedia/InstamadilloCoreTypeMedia.proto +112 -0
  209. slidge_whatsapp/vendor/go.mau.fi/whatsmeow/proto/instamadilloCoreTypeText/InstamadilloCoreTypeText.pb.go +514 -0
  210. slidge_whatsapp/vendor/go.mau.fi/whatsmeow/proto/instamadilloCoreTypeText/InstamadilloCoreTypeText.proto +47 -0
  211. slidge_whatsapp/vendor/go.mau.fi/whatsmeow/proto/instamadilloDeleteMessage/InstamadilloDeleteMessage.pb.go +123 -0
  212. slidge_whatsapp/vendor/go.mau.fi/whatsmeow/proto/instamadilloDeleteMessage/InstamadilloDeleteMessage.proto +7 -0
  213. slidge_whatsapp/vendor/go.mau.fi/whatsmeow/proto/instamadilloDeleteMessage/extra.go +3 -0
  214. slidge_whatsapp/vendor/go.mau.fi/whatsmeow/proto/instamadilloSupplementMessage/InstamadilloSupplementMessage.pb.go +720 -0
  215. slidge_whatsapp/vendor/go.mau.fi/whatsmeow/proto/instamadilloSupplementMessage/InstamadilloSupplementMessage.proto +59 -0
  216. slidge_whatsapp/vendor/go.mau.fi/whatsmeow/proto/instamadilloSupplementMessage/extra.go +3 -0
  217. slidge_whatsapp/vendor/go.mau.fi/whatsmeow/proto/instamadilloTransportPayload/InstamadilloTransportPayload.pb.go +365 -0
  218. slidge_whatsapp/vendor/go.mau.fi/whatsmeow/proto/instamadilloTransportPayload/InstamadilloTransportPayload.proto +33 -0
  219. slidge_whatsapp/vendor/go.mau.fi/whatsmeow/proto/instamadilloXmaContentRef/InstamadilloXmaContentRef.pb.go +1238 -0
  220. slidge_whatsapp/vendor/go.mau.fi/whatsmeow/proto/instamadilloXmaContentRef/InstamadilloXmaContentRef.proto +105 -0
  221. slidge_whatsapp/vendor/go.mau.fi/whatsmeow/proto/waAdv/WAAdv.pb.go +39 -9
  222. slidge_whatsapp/vendor/go.mau.fi/whatsmeow/proto/waArmadilloApplication/WAArmadilloApplication.pb.go +354 -175
  223. slidge_whatsapp/vendor/go.mau.fi/whatsmeow/proto/waArmadilloApplication/WAArmadilloApplication.proto +5 -5
  224. slidge_whatsapp/vendor/go.mau.fi/whatsmeow/proto/waArmadilloXMA/WAArmadilloXMA.pb.go +170 -15
  225. slidge_whatsapp/vendor/go.mau.fi/whatsmeow/proto/waArmadilloXMA/WAArmadilloXMA.proto +4 -0
  226. slidge_whatsapp/vendor/go.mau.fi/whatsmeow/proto/waBotMetadata/WABotMetadata.pb.go +5156 -0
  227. slidge_whatsapp/vendor/go.mau.fi/whatsmeow/proto/waBotMetadata/WABotMetadata.proto +516 -0
  228. slidge_whatsapp/vendor/go.mau.fi/whatsmeow/proto/waCert/WACert.pb.go +29 -9
  229. slidge_whatsapp/vendor/go.mau.fi/whatsmeow/proto/waChatLockSettings/WAProtobufsChatLockSettings.pb.go +13 -9
  230. slidge_whatsapp/vendor/go.mau.fi/whatsmeow/proto/waCommon/WACommon.pb.go +344 -31
  231. slidge_whatsapp/vendor/go.mau.fi/whatsmeow/proto/waCommon/WACommon.proto +26 -0
  232. slidge_whatsapp/vendor/go.mau.fi/whatsmeow/proto/waCompanionReg/{WAWebProtobufsCompanionReg.pb.go → WACompanionReg.pb.go} +211 -89
  233. slidge_whatsapp/vendor/go.mau.fi/whatsmeow/proto/waCompanionReg/{WAWebProtobufsCompanionReg.proto → WACompanionReg.proto} +5 -1
  234. slidge_whatsapp/vendor/go.mau.fi/whatsmeow/proto/waConsumerApplication/WAConsumerApplication.pb.go +173 -9
  235. slidge_whatsapp/vendor/go.mau.fi/whatsmeow/proto/waDeviceCapabilities/WAProtobufsDeviceCapabilities.pb.go +78 -16
  236. slidge_whatsapp/vendor/go.mau.fi/whatsmeow/proto/waDeviceCapabilities/WAProtobufsDeviceCapabilities.proto +5 -0
  237. slidge_whatsapp/vendor/go.mau.fi/whatsmeow/proto/waE2E/WAWebProtobufsE2E.pb.go +7463 -5180
  238. slidge_whatsapp/vendor/go.mau.fi/whatsmeow/proto/waE2E/WAWebProtobufsE2E.proto +366 -343
  239. slidge_whatsapp/vendor/go.mau.fi/whatsmeow/proto/waHistorySync/WAWebProtobufsHistorySync.pb.go +485 -135
  240. slidge_whatsapp/vendor/go.mau.fi/whatsmeow/proto/waHistorySync/WAWebProtobufsHistorySync.proto +17 -0
  241. slidge_whatsapp/vendor/go.mau.fi/whatsmeow/proto/waLidMigrationSyncPayload/WAWebProtobufLidMigrationSyncPayload.pb.go +198 -0
  242. slidge_whatsapp/vendor/go.mau.fi/whatsmeow/proto/waLidMigrationSyncPayload/WAWebProtobufLidMigrationSyncPayload.proto +14 -0
  243. slidge_whatsapp/vendor/go.mau.fi/whatsmeow/proto/waMediaTransport/WAMediaTransport.pb.go +162 -9
  244. slidge_whatsapp/vendor/go.mau.fi/whatsmeow/proto/waMediaTransport/WAMediaTransport.proto +1 -0
  245. slidge_whatsapp/vendor/go.mau.fi/whatsmeow/proto/waMmsRetry/WAMmsRetry.pb.go +32 -9
  246. slidge_whatsapp/vendor/go.mau.fi/whatsmeow/proto/waMmsRetry/WAMmsRetry.proto +1 -0
  247. slidge_whatsapp/vendor/go.mau.fi/whatsmeow/proto/waMsgApplication/WAMsgApplication.pb.go +192 -52
  248. slidge_whatsapp/vendor/go.mau.fi/whatsmeow/proto/waMsgApplication/WAMsgApplication.proto +8 -0
  249. slidge_whatsapp/vendor/go.mau.fi/whatsmeow/proto/waMsgTransport/WAMsgTransport.pb.go +60 -9
  250. slidge_whatsapp/vendor/go.mau.fi/whatsmeow/proto/waMsgTransport/extra.go +7 -6
  251. slidge_whatsapp/vendor/go.mau.fi/whatsmeow/proto/waMultiDevice/WAMultiDevice.pb.go +39 -9
  252. slidge_whatsapp/vendor/go.mau.fi/whatsmeow/proto/waServerSync/WAServerSync.pb.go +61 -9
  253. slidge_whatsapp/vendor/go.mau.fi/whatsmeow/proto/waStatusAttributions/WAStatusAttributions.pb.go +952 -0
  254. slidge_whatsapp/vendor/go.mau.fi/whatsmeow/proto/waStatusAttributions/WAStatusAttributions.proto +88 -0
  255. slidge_whatsapp/vendor/go.mau.fi/whatsmeow/proto/waSyncAction/WASyncAction.pb.go +1802 -453
  256. slidge_whatsapp/vendor/go.mau.fi/whatsmeow/proto/waSyncAction/WASyncAction.proto +92 -0
  257. slidge_whatsapp/vendor/go.mau.fi/whatsmeow/proto/waUserPassword/WAProtobufsUserPassword.pb.go +27 -9
  258. slidge_whatsapp/vendor/go.mau.fi/whatsmeow/proto/waVnameCert/WAWebProtobufsVnameCert.pb.go +59 -9
  259. slidge_whatsapp/vendor/go.mau.fi/whatsmeow/proto/waWa6/WAWebProtobufsWa6.pb.go +435 -109
  260. slidge_whatsapp/vendor/go.mau.fi/whatsmeow/proto/waWa6/WAWebProtobufsWa6.proto +11 -0
  261. slidge_whatsapp/vendor/go.mau.fi/whatsmeow/proto/waWeb/WAWebProtobufsWeb.pb.go +563 -9
  262. slidge_whatsapp/vendor/go.mau.fi/whatsmeow/proto/waWeb/WAWebProtobufsWeb.proto +4 -0
  263. slidge_whatsapp/vendor/go.mau.fi/whatsmeow/receipt.go +32 -9
  264. slidge_whatsapp/vendor/go.mau.fi/whatsmeow/reportingfields.json +1 -0
  265. slidge_whatsapp/vendor/go.mau.fi/whatsmeow/reportingtoken.go +176 -0
  266. slidge_whatsapp/vendor/go.mau.fi/whatsmeow/retry.go +39 -21
  267. slidge_whatsapp/vendor/go.mau.fi/whatsmeow/send.go +267 -79
  268. slidge_whatsapp/vendor/go.mau.fi/whatsmeow/sendfb.go +28 -16
  269. slidge_whatsapp/vendor/go.mau.fi/whatsmeow/store/clientpayload.go +3 -1
  270. slidge_whatsapp/vendor/go.mau.fi/whatsmeow/store/noop.go +87 -44
  271. slidge_whatsapp/vendor/go.mau.fi/whatsmeow/store/signal.go +75 -88
  272. slidge_whatsapp/vendor/go.mau.fi/whatsmeow/store/sqlstore/container.go +86 -65
  273. slidge_whatsapp/vendor/go.mau.fi/whatsmeow/store/sqlstore/lidmap.go +186 -0
  274. slidge_whatsapp/vendor/go.mau.fi/whatsmeow/store/sqlstore/store.go +314 -170
  275. slidge_whatsapp/vendor/go.mau.fi/whatsmeow/store/sqlstore/upgrades/00-latest-schema.sql +155 -0
  276. slidge_whatsapp/vendor/go.mau.fi/whatsmeow/store/sqlstore/upgrades/03-message-secrets.sql +11 -0
  277. slidge_whatsapp/vendor/go.mau.fi/whatsmeow/store/sqlstore/upgrades/04-privacy-tokens.sql +8 -0
  278. slidge_whatsapp/vendor/go.mau.fi/whatsmeow/store/sqlstore/upgrades/05-account-jid-format.sql +2 -0
  279. slidge_whatsapp/vendor/go.mau.fi/whatsmeow/store/sqlstore/upgrades/06-facebook-uuid.sql +2 -0
  280. slidge_whatsapp/vendor/go.mau.fi/whatsmeow/store/sqlstore/upgrades/07-account-lid.sql +2 -0
  281. slidge_whatsapp/vendor/go.mau.fi/whatsmeow/store/sqlstore/upgrades/08-lid-mapping.sql +5 -0
  282. slidge_whatsapp/vendor/go.mau.fi/whatsmeow/store/sqlstore/upgrades/09-decryption-buffer.sql +10 -0
  283. slidge_whatsapp/vendor/go.mau.fi/whatsmeow/store/sqlstore/upgrades/10-chat-db-lid-migration-ts.sql +2 -0
  284. slidge_whatsapp/vendor/go.mau.fi/whatsmeow/store/sqlstore/upgrades/upgrades.go +22 -0
  285. slidge_whatsapp/vendor/go.mau.fi/whatsmeow/store/store.go +109 -56
  286. slidge_whatsapp/vendor/go.mau.fi/whatsmeow/types/botmap.go +210 -0
  287. slidge_whatsapp/vendor/go.mau.fi/whatsmeow/types/call.go +1 -0
  288. slidge_whatsapp/vendor/go.mau.fi/whatsmeow/types/events/events.go +21 -2
  289. slidge_whatsapp/vendor/go.mau.fi/whatsmeow/types/group.go +15 -6
  290. slidge_whatsapp/vendor/go.mau.fi/whatsmeow/types/jid.go +9 -9
  291. slidge_whatsapp/vendor/go.mau.fi/whatsmeow/types/message.go +18 -0
  292. slidge_whatsapp/vendor/go.mau.fi/whatsmeow/types/user.go +2 -0
  293. slidge_whatsapp/vendor/go.mau.fi/whatsmeow/update.go +3 -2
  294. slidge_whatsapp/vendor/go.mau.fi/whatsmeow/upload.go +1 -1
  295. slidge_whatsapp/vendor/go.mau.fi/whatsmeow/user.go +59 -37
  296. slidge_whatsapp/vendor/golang.org/x/crypto/curve25519/curve25519.go +1 -1
  297. slidge_whatsapp/vendor/golang.org/x/exp/LICENSE +27 -0
  298. slidge_whatsapp/vendor/golang.org/x/exp/PATENTS +22 -0
  299. slidge_whatsapp/vendor/golang.org/x/exp/constraints/constraints.go +54 -0
  300. slidge_whatsapp/vendor/golang.org/x/net/http/httpguts/guts.go +50 -0
  301. slidge_whatsapp/vendor/golang.org/x/net/http/httpguts/httplex.go +347 -0
  302. slidge_whatsapp/vendor/golang.org/x/net/http2/.gitignore +2 -0
  303. slidge_whatsapp/vendor/golang.org/x/net/http2/ascii.go +53 -0
  304. slidge_whatsapp/vendor/golang.org/x/net/http2/ciphers.go +641 -0
  305. slidge_whatsapp/vendor/golang.org/x/net/http2/client_conn_pool.go +311 -0
  306. slidge_whatsapp/vendor/golang.org/x/net/http2/config.go +164 -0
  307. slidge_whatsapp/vendor/golang.org/x/net/http2/databuffer.go +149 -0
  308. slidge_whatsapp/vendor/golang.org/x/net/http2/errors.go +145 -0
  309. slidge_whatsapp/vendor/golang.org/x/net/http2/flow.go +120 -0
  310. slidge_whatsapp/vendor/golang.org/x/net/http2/frame.go +1702 -0
  311. slidge_whatsapp/vendor/golang.org/x/net/http2/gotrack.go +181 -0
  312. slidge_whatsapp/vendor/golang.org/x/net/http2/hpack/encode.go +245 -0
  313. slidge_whatsapp/vendor/golang.org/x/net/http2/hpack/hpack.go +523 -0
  314. slidge_whatsapp/vendor/golang.org/x/net/http2/hpack/huffman.go +226 -0
  315. slidge_whatsapp/vendor/golang.org/x/net/http2/hpack/static_table.go +188 -0
  316. slidge_whatsapp/vendor/golang.org/x/net/http2/hpack/tables.go +403 -0
  317. slidge_whatsapp/vendor/golang.org/x/net/http2/http2.go +410 -0
  318. slidge_whatsapp/vendor/golang.org/x/net/http2/pipe.go +184 -0
  319. slidge_whatsapp/vendor/golang.org/x/net/http2/server.go +3332 -0
  320. slidge_whatsapp/vendor/golang.org/x/net/http2/transport.go +3233 -0
  321. slidge_whatsapp/vendor/golang.org/x/net/http2/unencrypted.go +32 -0
  322. slidge_whatsapp/vendor/golang.org/x/net/http2/write.go +381 -0
  323. slidge_whatsapp/vendor/golang.org/x/net/http2/writesched.go +251 -0
  324. slidge_whatsapp/vendor/golang.org/x/net/http2/writesched_priority.go +451 -0
  325. slidge_whatsapp/vendor/golang.org/x/net/http2/writesched_random.go +77 -0
  326. slidge_whatsapp/vendor/golang.org/x/net/http2/writesched_roundrobin.go +119 -0
  327. slidge_whatsapp/vendor/golang.org/x/net/idna/go118.go +13 -0
  328. slidge_whatsapp/vendor/golang.org/x/net/idna/idna10.0.0.go +769 -0
  329. slidge_whatsapp/vendor/golang.org/x/net/idna/idna9.0.0.go +717 -0
  330. slidge_whatsapp/vendor/golang.org/x/net/idna/pre_go118.go +11 -0
  331. slidge_whatsapp/vendor/golang.org/x/net/idna/punycode.go +217 -0
  332. slidge_whatsapp/vendor/golang.org/x/net/idna/tables10.0.0.go +4559 -0
  333. slidge_whatsapp/vendor/golang.org/x/net/idna/tables11.0.0.go +4653 -0
  334. slidge_whatsapp/vendor/golang.org/x/net/idna/tables12.0.0.go +4733 -0
  335. slidge_whatsapp/vendor/golang.org/x/net/idna/tables13.0.0.go +4959 -0
  336. slidge_whatsapp/vendor/golang.org/x/net/idna/tables15.0.0.go +5144 -0
  337. slidge_whatsapp/vendor/golang.org/x/net/idna/tables9.0.0.go +4486 -0
  338. slidge_whatsapp/vendor/golang.org/x/net/idna/trie.go +51 -0
  339. slidge_whatsapp/vendor/golang.org/x/net/idna/trie12.0.0.go +30 -0
  340. slidge_whatsapp/vendor/golang.org/x/net/idna/trie13.0.0.go +30 -0
  341. slidge_whatsapp/vendor/golang.org/x/net/idna/trieval.go +119 -0
  342. slidge_whatsapp/vendor/golang.org/x/net/internal/httpcommon/ascii.go +53 -0
  343. slidge_whatsapp/vendor/golang.org/x/net/internal/httpcommon/headermap.go +115 -0
  344. slidge_whatsapp/vendor/golang.org/x/net/internal/httpcommon/request.go +467 -0
  345. slidge_whatsapp/vendor/golang.org/x/sys/unix/affinity_linux.go +1 -3
  346. slidge_whatsapp/vendor/golang.org/x/sys/unix/mkerrors.sh +3 -0
  347. slidge_whatsapp/vendor/golang.org/x/sys/unix/syscall_darwin.go +93 -0
  348. slidge_whatsapp/vendor/golang.org/x/sys/unix/syscall_linux.go +16 -26
  349. slidge_whatsapp/vendor/golang.org/x/sys/unix/syscall_solaris.go +1 -1
  350. slidge_whatsapp/vendor/golang.org/x/sys/unix/zerrors_linux.go +47 -16
  351. slidge_whatsapp/vendor/golang.org/x/sys/unix/zerrors_linux_386.go +3 -0
  352. slidge_whatsapp/vendor/golang.org/x/sys/unix/zerrors_linux_amd64.go +3 -0
  353. slidge_whatsapp/vendor/golang.org/x/sys/unix/zerrors_linux_arm.go +3 -0
  354. slidge_whatsapp/vendor/golang.org/x/sys/unix/zerrors_linux_arm64.go +3 -0
  355. slidge_whatsapp/vendor/golang.org/x/sys/unix/zerrors_linux_loong64.go +3 -0
  356. slidge_whatsapp/vendor/golang.org/x/sys/unix/zerrors_linux_mips.go +3 -0
  357. slidge_whatsapp/vendor/golang.org/x/sys/unix/zerrors_linux_mips64.go +3 -0
  358. slidge_whatsapp/vendor/golang.org/x/sys/unix/zerrors_linux_mips64le.go +3 -0
  359. slidge_whatsapp/vendor/golang.org/x/sys/unix/zerrors_linux_mipsle.go +3 -0
  360. slidge_whatsapp/vendor/golang.org/x/sys/unix/zerrors_linux_ppc.go +3 -0
  361. slidge_whatsapp/vendor/golang.org/x/sys/unix/zerrors_linux_ppc64.go +3 -0
  362. slidge_whatsapp/vendor/golang.org/x/sys/unix/zerrors_linux_ppc64le.go +3 -0
  363. slidge_whatsapp/vendor/golang.org/x/sys/unix/zerrors_linux_riscv64.go +3 -0
  364. slidge_whatsapp/vendor/golang.org/x/sys/unix/zerrors_linux_s390x.go +3 -0
  365. slidge_whatsapp/vendor/golang.org/x/sys/unix/zerrors_linux_sparc64.go +3 -0
  366. slidge_whatsapp/vendor/golang.org/x/sys/unix/zsyscall_darwin_amd64.go +84 -0
  367. slidge_whatsapp/vendor/golang.org/x/sys/unix/zsyscall_darwin_amd64.s +20 -0
  368. slidge_whatsapp/vendor/golang.org/x/sys/unix/zsyscall_darwin_arm64.go +84 -0
  369. slidge_whatsapp/vendor/golang.org/x/sys/unix/zsyscall_darwin_arm64.s +20 -0
  370. slidge_whatsapp/vendor/golang.org/x/sys/unix/zsyscall_solaris_amd64.go +4 -4
  371. slidge_whatsapp/vendor/golang.org/x/sys/unix/zsysnum_linux_386.go +1 -0
  372. slidge_whatsapp/vendor/golang.org/x/sys/unix/zsysnum_linux_amd64.go +1 -0
  373. slidge_whatsapp/vendor/golang.org/x/sys/unix/zsysnum_linux_arm.go +1 -0
  374. slidge_whatsapp/vendor/golang.org/x/sys/unix/zsysnum_linux_arm64.go +1 -0
  375. slidge_whatsapp/vendor/golang.org/x/sys/unix/zsysnum_linux_loong64.go +1 -0
  376. slidge_whatsapp/vendor/golang.org/x/sys/unix/zsysnum_linux_mips.go +1 -0
  377. slidge_whatsapp/vendor/golang.org/x/sys/unix/zsysnum_linux_mips64.go +1 -0
  378. slidge_whatsapp/vendor/golang.org/x/sys/unix/zsysnum_linux_mips64le.go +1 -0
  379. slidge_whatsapp/vendor/golang.org/x/sys/unix/zsysnum_linux_mipsle.go +1 -0
  380. slidge_whatsapp/vendor/golang.org/x/sys/unix/zsysnum_linux_ppc.go +1 -0
  381. slidge_whatsapp/vendor/golang.org/x/sys/unix/zsysnum_linux_ppc64.go +1 -0
  382. slidge_whatsapp/vendor/golang.org/x/sys/unix/zsysnum_linux_ppc64le.go +1 -0
  383. slidge_whatsapp/vendor/golang.org/x/sys/unix/zsysnum_linux_riscv64.go +1 -0
  384. slidge_whatsapp/vendor/golang.org/x/sys/unix/zsysnum_linux_s390x.go +1 -0
  385. slidge_whatsapp/vendor/golang.org/x/sys/unix/zsysnum_linux_sparc64.go +1 -0
  386. slidge_whatsapp/vendor/golang.org/x/sys/unix/ztypes_linux.go +168 -12
  387. slidge_whatsapp/vendor/golang.org/x/sys/unix/ztypes_linux_386.go +17 -1
  388. slidge_whatsapp/vendor/golang.org/x/sys/unix/ztypes_linux_amd64.go +16 -0
  389. slidge_whatsapp/vendor/golang.org/x/sys/unix/ztypes_linux_arm.go +18 -2
  390. slidge_whatsapp/vendor/golang.org/x/sys/unix/ztypes_linux_arm64.go +16 -0
  391. slidge_whatsapp/vendor/golang.org/x/sys/unix/ztypes_linux_loong64.go +16 -0
  392. slidge_whatsapp/vendor/golang.org/x/sys/unix/ztypes_linux_mips.go +17 -1
  393. slidge_whatsapp/vendor/golang.org/x/sys/unix/ztypes_linux_mips64.go +16 -0
  394. slidge_whatsapp/vendor/golang.org/x/sys/unix/ztypes_linux_mips64le.go +16 -0
  395. slidge_whatsapp/vendor/golang.org/x/sys/unix/ztypes_linux_mipsle.go +17 -1
  396. slidge_whatsapp/vendor/golang.org/x/sys/unix/ztypes_linux_ppc.go +18 -2
  397. slidge_whatsapp/vendor/golang.org/x/sys/unix/ztypes_linux_ppc64.go +16 -0
  398. slidge_whatsapp/vendor/golang.org/x/sys/unix/ztypes_linux_ppc64le.go +16 -0
  399. slidge_whatsapp/vendor/golang.org/x/sys/unix/ztypes_linux_riscv64.go +16 -0
  400. slidge_whatsapp/vendor/golang.org/x/sys/unix/ztypes_linux_s390x.go +16 -0
  401. slidge_whatsapp/vendor/golang.org/x/sys/unix/ztypes_linux_sparc64.go +16 -0
  402. slidge_whatsapp/vendor/golang.org/x/sys/windows/security_windows.go +44 -5
  403. slidge_whatsapp/vendor/golang.org/x/sys/windows/syscall_windows.go +4 -2
  404. slidge_whatsapp/vendor/golang.org/x/sys/windows/types_windows.go +245 -0
  405. slidge_whatsapp/vendor/golang.org/x/sys/windows/zsyscall_windows.go +491 -482
  406. slidge_whatsapp/vendor/golang.org/x/text/LICENSE +27 -0
  407. slidge_whatsapp/vendor/golang.org/x/text/PATENTS +22 -0
  408. slidge_whatsapp/vendor/golang.org/x/text/secure/bidirule/bidirule.go +336 -0
  409. slidge_whatsapp/vendor/golang.org/x/text/secure/bidirule/bidirule10.0.0.go +11 -0
  410. slidge_whatsapp/vendor/golang.org/x/text/secure/bidirule/bidirule9.0.0.go +14 -0
  411. slidge_whatsapp/vendor/golang.org/x/text/transform/transform.go +709 -0
  412. slidge_whatsapp/vendor/golang.org/x/text/unicode/bidi/bidi.go +359 -0
  413. slidge_whatsapp/vendor/golang.org/x/text/unicode/bidi/bracket.go +335 -0
  414. slidge_whatsapp/vendor/golang.org/x/text/unicode/bidi/core.go +1071 -0
  415. slidge_whatsapp/vendor/golang.org/x/text/unicode/bidi/prop.go +206 -0
  416. slidge_whatsapp/vendor/golang.org/x/text/unicode/bidi/tables10.0.0.go +1815 -0
  417. slidge_whatsapp/vendor/golang.org/x/text/unicode/bidi/tables11.0.0.go +1887 -0
  418. slidge_whatsapp/vendor/golang.org/x/text/unicode/bidi/tables12.0.0.go +1923 -0
  419. slidge_whatsapp/vendor/golang.org/x/text/unicode/bidi/tables13.0.0.go +1955 -0
  420. slidge_whatsapp/vendor/golang.org/x/text/unicode/bidi/tables15.0.0.go +2042 -0
  421. slidge_whatsapp/vendor/golang.org/x/text/unicode/bidi/tables9.0.0.go +1781 -0
  422. slidge_whatsapp/vendor/golang.org/x/text/unicode/bidi/trieval.go +48 -0
  423. slidge_whatsapp/vendor/golang.org/x/text/unicode/norm/composition.go +512 -0
  424. slidge_whatsapp/vendor/golang.org/x/text/unicode/norm/forminfo.go +279 -0
  425. slidge_whatsapp/vendor/golang.org/x/text/unicode/norm/input.go +109 -0
  426. slidge_whatsapp/vendor/golang.org/x/text/unicode/norm/iter.go +458 -0
  427. slidge_whatsapp/vendor/golang.org/x/text/unicode/norm/normalize.go +610 -0
  428. slidge_whatsapp/vendor/golang.org/x/text/unicode/norm/readwriter.go +125 -0
  429. slidge_whatsapp/vendor/golang.org/x/text/unicode/norm/tables10.0.0.go +7657 -0
  430. slidge_whatsapp/vendor/golang.org/x/text/unicode/norm/tables11.0.0.go +7693 -0
  431. slidge_whatsapp/vendor/golang.org/x/text/unicode/norm/tables12.0.0.go +7710 -0
  432. slidge_whatsapp/vendor/golang.org/x/text/unicode/norm/tables13.0.0.go +7760 -0
  433. slidge_whatsapp/vendor/golang.org/x/text/unicode/norm/tables15.0.0.go +7907 -0
  434. slidge_whatsapp/vendor/golang.org/x/text/unicode/norm/tables9.0.0.go +7637 -0
  435. slidge_whatsapp/vendor/golang.org/x/text/unicode/norm/transform.go +88 -0
  436. slidge_whatsapp/vendor/golang.org/x/text/unicode/norm/trie.go +54 -0
  437. slidge_whatsapp/vendor/google.golang.org/protobuf/encoding/protowire/wire.go +25 -1
  438. slidge_whatsapp/vendor/google.golang.org/protobuf/internal/editiondefaults/editions_defaults.binpb +0 -0
  439. slidge_whatsapp/vendor/google.golang.org/protobuf/internal/filedesc/editions.go +13 -5
  440. slidge_whatsapp/vendor/google.golang.org/protobuf/internal/filedesc/presence.go +33 -0
  441. slidge_whatsapp/vendor/google.golang.org/protobuf/internal/genid/api_gen.go +6 -0
  442. slidge_whatsapp/vendor/google.golang.org/protobuf/internal/genid/descriptor_gen.go +81 -19
  443. slidge_whatsapp/vendor/google.golang.org/protobuf/internal/impl/codec_message_opaque.go +2 -1
  444. slidge_whatsapp/vendor/google.golang.org/protobuf/internal/impl/message_opaque.go +8 -37
  445. slidge_whatsapp/vendor/google.golang.org/protobuf/internal/impl/presence.go +0 -3
  446. slidge_whatsapp/vendor/google.golang.org/protobuf/internal/strs/{strings_unsafe_go121.go → strings_unsafe.go} +0 -2
  447. slidge_whatsapp/vendor/google.golang.org/protobuf/internal/version/version.go +1 -1
  448. slidge_whatsapp/vendor/google.golang.org/protobuf/proto/merge.go +6 -0
  449. slidge_whatsapp/vendor/google.golang.org/protobuf/reflect/protoreflect/source_gen.go +10 -0
  450. slidge_whatsapp/vendor/google.golang.org/protobuf/reflect/protoreflect/{value_unsafe_go121.go → value_unsafe.go} +0 -2
  451. slidge_whatsapp/vendor/modules.txt +80 -21
  452. {slidge_whatsapp-0.2.5.dist-info → slidge_whatsapp-0.3.0b0.dist-info}/METADATA +2 -2
  453. {slidge_whatsapp-0.2.5.dist-info → slidge_whatsapp-0.3.0b0.dist-info}/RECORD +456 -263
  454. {slidge_whatsapp-0.2.5.dist-info → slidge_whatsapp-0.3.0b0.dist-info}/WHEEL +1 -1
  455. slidge_whatsapp/vendor/github.com/jupiterrider/ffi/abi_amd64.go +0 -7
  456. slidge_whatsapp/vendor/github.com/rs/zerolog/CNAME +0 -1
  457. slidge_whatsapp/vendor/github.com/rs/zerolog/_config.yml +0 -1
  458. slidge_whatsapp/vendor/go.mau.fi/whatsmeow/proto/waAdv/WAAdv.pb.raw +0 -0
  459. slidge_whatsapp/vendor/go.mau.fi/whatsmeow/proto/waArmadilloApplication/WAArmadilloApplication.pb.raw +0 -0
  460. slidge_whatsapp/vendor/go.mau.fi/whatsmeow/proto/waArmadilloXMA/WAArmadilloXMA.pb.raw +0 -0
  461. slidge_whatsapp/vendor/go.mau.fi/whatsmeow/proto/waCert/WACert.pb.raw +0 -23
  462. slidge_whatsapp/vendor/go.mau.fi/whatsmeow/proto/waChatLockSettings/WAProtobufsChatLockSettings.pb.raw +0 -7
  463. slidge_whatsapp/vendor/go.mau.fi/whatsmeow/proto/waCommon/WACommon.pb.raw +0 -0
  464. slidge_whatsapp/vendor/go.mau.fi/whatsmeow/proto/waCompanionReg/WAWebProtobufsCompanionReg.pb.raw +0 -0
  465. slidge_whatsapp/vendor/go.mau.fi/whatsmeow/proto/waConsumerApplication/WAConsumerApplication.pb.raw +0 -0
  466. slidge_whatsapp/vendor/go.mau.fi/whatsmeow/proto/waDeviceCapabilities/WAProtobufsDeviceCapabilities.pb.raw +0 -0
  467. slidge_whatsapp/vendor/go.mau.fi/whatsmeow/proto/waE2E/WAWebProtobufsE2E.pb.raw +0 -0
  468. slidge_whatsapp/vendor/go.mau.fi/whatsmeow/proto/waHistorySync/WAWebProtobufsHistorySync.pb.raw +0 -0
  469. slidge_whatsapp/vendor/go.mau.fi/whatsmeow/proto/waMediaTransport/WAMediaTransport.pb.raw +0 -0
  470. slidge_whatsapp/vendor/go.mau.fi/whatsmeow/proto/waMmsRetry/WAMmsRetry.pb.raw +0 -0
  471. slidge_whatsapp/vendor/go.mau.fi/whatsmeow/proto/waMsgApplication/WAMsgApplication.pb.raw +0 -0
  472. slidge_whatsapp/vendor/go.mau.fi/whatsmeow/proto/waMsgTransport/WAMsgTransport.pb.raw +0 -0
  473. slidge_whatsapp/vendor/go.mau.fi/whatsmeow/proto/waMultiDevice/WAMultiDevice.pb.raw +0 -0
  474. slidge_whatsapp/vendor/go.mau.fi/whatsmeow/proto/waServerSync/WAServerSync.pb.raw +0 -0
  475. slidge_whatsapp/vendor/go.mau.fi/whatsmeow/proto/waSyncAction/WASyncAction.pb.raw +0 -0
  476. slidge_whatsapp/vendor/go.mau.fi/whatsmeow/proto/waUserPassword/WAProtobufsUserPassword.pb.raw +0 -0
  477. slidge_whatsapp/vendor/go.mau.fi/whatsmeow/proto/waVnameCert/WAWebProtobufsVnameCert.pb.raw +0 -0
  478. slidge_whatsapp/vendor/go.mau.fi/whatsmeow/proto/waWa6/WAWebProtobufsWa6.pb.raw +0 -0
  479. slidge_whatsapp/vendor/go.mau.fi/whatsmeow/proto/waWeb/WAWebProtobufsWeb.pb.raw +0 -0
  480. slidge_whatsapp/vendor/go.mau.fi/whatsmeow/store/sqlstore/upgrade.go +0 -296
  481. slidge_whatsapp/vendor/google.golang.org/protobuf/internal/strs/strings_unsafe_go120.go +0 -94
  482. slidge_whatsapp/vendor/google.golang.org/protobuf/reflect/protoreflect/value_unsafe_go120.go +0 -98
  483. {slidge_whatsapp-0.2.5.dist-info → slidge_whatsapp-0.3.0b0.dist-info}/LICENSE +0 -0
  484. {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."
@@ -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
- avatar = self.session.whatsapp.GetAvatar(data.JID, contact.avatar or "")
58
- if avatar.URL and contact.avatar != avatar.ID:
59
- await contact.set_avatar(avatar.URL, avatar.ID)
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
- var contact = Contact{
85
- JID: jid.ToNonAD().String(),
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 EventUnknown, nil
118
+ return Contact{}
98
119
  }
99
120
 
100
- return EventContact, &EventPayload{Contact: contact}
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
- message = getMessageWithContext(message, e.GetContextInfo())
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(context.Background(), a.Data, convertSpec)
463
- if err == nil {
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
- if err := convertAttachment(attach); err != nil {
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.MessageSource.Sender.ToNonAD().String()}
971
- if evt.MessageSource.IsGroup {
972
- state.GroupJID = evt.MessageSource.Chat.ToNonAD().String()
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: append([]string{}, evt.MessageIDs...),
1010
- JID: evt.MessageSource.Sender.ToNonAD().String(),
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.MessageSource.IsFromMe,
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.MessageSource.Chat.Server == types.BroadcastServer {
1020
- receipt.JID = evt.MessageSource.BroadcastListOwner.ToNonAD().String()
1021
- } else if evt.MessageSource.IsGroup {
1022
- receipt.GroupJID = evt.MessageSource.Chat.ToNonAD().String()
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.MessageSource.Chat.ToNonAD().String()
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 string // The user-defined group description.
1063
- SetAt int64 // The exact time this group description was set at, as a timestamp.
1064
- SetByJID string // The JID of the user that set the subject.
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 always be derived back to their individual [Contact]; there are no anonymous groups
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(p types.GroupParticipant) GroupParticipant {
1106
- if p.Error > 0 {
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 affiliation = GroupAffiliationNone
1110
- if p.IsSuperAdmin {
1111
- affiliation = GroupAffiliationOwner
1112
- } else if p.IsAdmin {
1113
- affiliation = GroupAffiliationAdmin
1149
+ var p = GroupParticipant{
1150
+ JID: participant.JID.ToNonAD().String(),
1114
1151
  }
1115
- return GroupParticipant{
1116
- JID: p.JID.ToNonAD().String(),
1117
- Affiliation: affiliation,
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: evt.Topic.Topic,
1132
- SetAt: evt.Topic.TopicSetAt.Unix(),
1133
- SetByJID: evt.Topic.TopicSetBy.ToNonAD().String(),
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
- return Group{
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.GroupName.Name,
1228
+ Name: info.Name,
1180
1229
  Subject: GroupSubject{
1181
- Subject: info.Topic,
1182
- SetAt: info.TopicSetAt.Unix(),
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
+ }
@@ -2,9 +2,7 @@ package whatsapp
2
2
 
3
3
  import (
4
4
  // Standard library.
5
- "fmt"
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 = logger{
66
- module: "Slidge",
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
- devices, err := w.container.GetAllDevices()
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
- }
@@ -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, GatewayUser, global_config
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, user: GatewayUser):
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"]