slidge-whatsapp 0.2.6__cp312-cp312-manylinux_2_36_aarch64.whl → 0.2.7__cp312-cp312-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 (87) hide show
  1. slidge_whatsapp/event.go +8 -2
  2. slidge_whatsapp/generated/_whatsapp.cpython-312-aarch64-linux-gnu.h +164 -164
  3. slidge_whatsapp/generated/_whatsapp.cpython-312-aarch64-linux-gnu.so +0 -0
  4. slidge_whatsapp/generated/build.py +130 -130
  5. slidge_whatsapp/generated/whatsapp.c +1504 -1504
  6. slidge_whatsapp/generated/whatsapp.go +1021 -1021
  7. slidge_whatsapp/generated/whatsapp.py +1209 -1209
  8. slidge_whatsapp/generated/whatsapp_go.h +164 -164
  9. slidge_whatsapp/go.mod +6 -6
  10. slidge_whatsapp/go.sum +12 -18
  11. slidge_whatsapp/media/media.go +5 -1
  12. slidge_whatsapp/vendor/go.mau.fi/util/exhttp/json.go +1 -6
  13. slidge_whatsapp/vendor/go.mau.fi/util/exstrings/stringutil.go +76 -0
  14. slidge_whatsapp/vendor/go.mau.fi/whatsmeow/armadillomessage.go +38 -6
  15. slidge_whatsapp/vendor/go.mau.fi/whatsmeow/binary/encoder.go +1 -1
  16. slidge_whatsapp/vendor/go.mau.fi/whatsmeow/call.go +1 -1
  17. slidge_whatsapp/vendor/go.mau.fi/whatsmeow/client.go +64 -27
  18. slidge_whatsapp/vendor/go.mau.fi/whatsmeow/connectionevents.go +8 -6
  19. slidge_whatsapp/vendor/go.mau.fi/whatsmeow/download-to-file.go +19 -12
  20. slidge_whatsapp/vendor/go.mau.fi/whatsmeow/download.go +22 -6
  21. slidge_whatsapp/vendor/go.mau.fi/whatsmeow/group.go +2 -2
  22. slidge_whatsapp/vendor/go.mau.fi/whatsmeow/internals.go +33 -17
  23. slidge_whatsapp/vendor/go.mau.fi/whatsmeow/keepalive.go +1 -0
  24. slidge_whatsapp/vendor/go.mau.fi/whatsmeow/message.go +198 -48
  25. slidge_whatsapp/vendor/go.mau.fi/whatsmeow/notification.go +12 -7
  26. slidge_whatsapp/vendor/go.mau.fi/whatsmeow/proto/extra.go +7 -0
  27. slidge_whatsapp/vendor/go.mau.fi/whatsmeow/proto/instamadilloAddMessage/InstamadilloAddMessage.pb.go +983 -0
  28. slidge_whatsapp/vendor/go.mau.fi/whatsmeow/proto/instamadilloAddMessage/InstamadilloAddMessage.proto +85 -0
  29. slidge_whatsapp/vendor/go.mau.fi/whatsmeow/proto/instamadilloAddMessage/extra.go +3 -0
  30. slidge_whatsapp/vendor/go.mau.fi/whatsmeow/proto/instamadilloCoreTypeActionLog/InstamadilloCoreTypeActionLog.pb.go +197 -0
  31. slidge_whatsapp/vendor/go.mau.fi/whatsmeow/proto/instamadilloCoreTypeActionLog/InstamadilloCoreTypeActionLog.proto +13 -0
  32. slidge_whatsapp/vendor/go.mau.fi/whatsmeow/proto/instamadilloCoreTypeAdminMessage/InstamadilloCoreTypeAdminMessage.pb.go +279 -0
  33. slidge_whatsapp/vendor/go.mau.fi/whatsmeow/proto/instamadilloCoreTypeAdminMessage/InstamadilloCoreTypeAdminMessage.proto +21 -0
  34. slidge_whatsapp/vendor/go.mau.fi/whatsmeow/proto/instamadilloCoreTypeCollection/InstamadilloCoreTypeCollection.pb.go +137 -0
  35. slidge_whatsapp/vendor/go.mau.fi/whatsmeow/proto/instamadilloCoreTypeCollection/InstamadilloCoreTypeCollection.proto +10 -0
  36. slidge_whatsapp/vendor/go.mau.fi/whatsmeow/proto/instamadilloCoreTypeLink/InstamadilloCoreTypeLink.pb.go +313 -0
  37. slidge_whatsapp/vendor/go.mau.fi/whatsmeow/proto/instamadilloCoreTypeLink/InstamadilloCoreTypeLink.proto +27 -0
  38. slidge_whatsapp/vendor/go.mau.fi/whatsmeow/proto/instamadilloCoreTypeMedia/InstamadilloCoreTypeMedia.pb.go +1299 -0
  39. slidge_whatsapp/vendor/go.mau.fi/whatsmeow/proto/instamadilloCoreTypeMedia/InstamadilloCoreTypeMedia.proto +112 -0
  40. slidge_whatsapp/vendor/go.mau.fi/whatsmeow/proto/instamadilloCoreTypeText/InstamadilloCoreTypeText.pb.go +514 -0
  41. slidge_whatsapp/vendor/go.mau.fi/whatsmeow/proto/instamadilloCoreTypeText/InstamadilloCoreTypeText.proto +47 -0
  42. slidge_whatsapp/vendor/go.mau.fi/whatsmeow/proto/instamadilloDeleteMessage/InstamadilloDeleteMessage.pb.go +123 -0
  43. slidge_whatsapp/vendor/go.mau.fi/whatsmeow/proto/instamadilloDeleteMessage/InstamadilloDeleteMessage.proto +7 -0
  44. slidge_whatsapp/vendor/go.mau.fi/whatsmeow/proto/instamadilloDeleteMessage/extra.go +3 -0
  45. slidge_whatsapp/vendor/go.mau.fi/whatsmeow/proto/instamadilloSupplementMessage/InstamadilloSupplementMessage.pb.go +720 -0
  46. slidge_whatsapp/vendor/go.mau.fi/whatsmeow/proto/instamadilloSupplementMessage/InstamadilloSupplementMessage.proto +59 -0
  47. slidge_whatsapp/vendor/go.mau.fi/whatsmeow/proto/instamadilloSupplementMessage/extra.go +3 -0
  48. slidge_whatsapp/vendor/go.mau.fi/whatsmeow/proto/instamadilloTransportPayload/InstamadilloTransportPayload.pb.go +365 -0
  49. slidge_whatsapp/vendor/go.mau.fi/whatsmeow/proto/instamadilloTransportPayload/InstamadilloTransportPayload.proto +33 -0
  50. slidge_whatsapp/vendor/go.mau.fi/whatsmeow/proto/instamadilloXmaContentRef/InstamadilloXmaContentRef.pb.go +1238 -0
  51. slidge_whatsapp/vendor/go.mau.fi/whatsmeow/proto/instamadilloXmaContentRef/InstamadilloXmaContentRef.proto +105 -0
  52. slidge_whatsapp/vendor/go.mau.fi/whatsmeow/proto/waArmadilloXMA/WAArmadilloXMA.pb.go +16 -4
  53. slidge_whatsapp/vendor/go.mau.fi/whatsmeow/proto/waArmadilloXMA/WAArmadilloXMA.proto +3 -0
  54. slidge_whatsapp/vendor/go.mau.fi/whatsmeow/proto/waCompanionReg/WACompanionReg.pb.go +16 -7
  55. slidge_whatsapp/vendor/go.mau.fi/whatsmeow/proto/waCompanionReg/WACompanionReg.proto +1 -0
  56. slidge_whatsapp/vendor/go.mau.fi/whatsmeow/proto/waE2E/WAWebProtobufsE2E.pb.go +2436 -1676
  57. slidge_whatsapp/vendor/go.mau.fi/whatsmeow/proto/waE2E/WAWebProtobufsE2E.proto +85 -7
  58. slidge_whatsapp/vendor/go.mau.fi/whatsmeow/proto/waLidMigrationSyncPayload/WAWebProtobufLidMigrationSyncPayload.pb.go +198 -0
  59. slidge_whatsapp/vendor/go.mau.fi/whatsmeow/proto/waLidMigrationSyncPayload/WAWebProtobufLidMigrationSyncPayload.proto +14 -0
  60. slidge_whatsapp/vendor/go.mau.fi/whatsmeow/proto/waMsgTransport/extra.go +7 -6
  61. slidge_whatsapp/vendor/go.mau.fi/whatsmeow/proto/waStatusAttributions/WAStatusAttributions.pb.go +800 -0
  62. slidge_whatsapp/vendor/go.mau.fi/whatsmeow/proto/waStatusAttributions/WAStatusAttributions.proto +72 -0
  63. slidge_whatsapp/vendor/go.mau.fi/whatsmeow/proto/waSyncAction/WASyncAction.pb.go +678 -441
  64. slidge_whatsapp/vendor/go.mau.fi/whatsmeow/proto/waSyncAction/WASyncAction.proto +20 -0
  65. slidge_whatsapp/vendor/go.mau.fi/whatsmeow/proto/waWeb/WAWebProtobufsWeb.pb.go +11 -3
  66. slidge_whatsapp/vendor/go.mau.fi/whatsmeow/proto/waWeb/WAWebProtobufsWeb.proto +2 -0
  67. slidge_whatsapp/vendor/go.mau.fi/whatsmeow/receipt.go +13 -7
  68. slidge_whatsapp/vendor/go.mau.fi/whatsmeow/reportingfields.json +1 -0
  69. slidge_whatsapp/vendor/go.mau.fi/whatsmeow/reportingtoken.go +176 -0
  70. slidge_whatsapp/vendor/go.mau.fi/whatsmeow/retry.go +10 -2
  71. slidge_whatsapp/vendor/go.mau.fi/whatsmeow/send.go +32 -17
  72. slidge_whatsapp/vendor/go.mau.fi/whatsmeow/sendfb.go +1 -0
  73. slidge_whatsapp/vendor/go.mau.fi/whatsmeow/store/clientpayload.go +1 -1
  74. slidge_whatsapp/vendor/go.mau.fi/whatsmeow/store/sqlstore/container.go +9 -6
  75. slidge_whatsapp/vendor/go.mau.fi/whatsmeow/store/sqlstore/upgrades/00-latest-schema.sql +4 -2
  76. slidge_whatsapp/vendor/go.mau.fi/whatsmeow/store/sqlstore/upgrades/10-chat-db-lid-migration-ts.sql +2 -0
  77. slidge_whatsapp/vendor/go.mau.fi/whatsmeow/store/store.go +2 -0
  78. slidge_whatsapp/vendor/go.mau.fi/whatsmeow/types/events/events.go +5 -2
  79. slidge_whatsapp/vendor/go.mau.fi/whatsmeow/types/message.go +1 -0
  80. slidge_whatsapp/vendor/go.mau.fi/whatsmeow/user.go +2 -0
  81. slidge_whatsapp/vendor/golang.org/x/net/http2/frame.go +8 -8
  82. slidge_whatsapp/vendor/modules.txt +20 -6
  83. {slidge_whatsapp-0.2.6.dist-info → slidge_whatsapp-0.2.7.dist-info}/METADATA +1 -1
  84. {slidge_whatsapp-0.2.6.dist-info → slidge_whatsapp-0.2.7.dist-info}/RECORD +87 -54
  85. {slidge_whatsapp-0.2.6.dist-info → slidge_whatsapp-0.2.7.dist-info}/LICENSE +0 -0
  86. {slidge_whatsapp-0.2.6.dist-info → slidge_whatsapp-0.2.7.dist-info}/WHEEL +0 -0
  87. {slidge_whatsapp-0.2.6.dist-info → slidge_whatsapp-0.2.7.dist-info}/entry_points.txt +0 -0
@@ -351,46 +351,20 @@ extern long long int Slice_whatsapp_Receipt_subslice(long long int handle, GoInt
351
351
  extern void Slice_whatsapp_Receipt_set(long long int handle, GoInt _idx, long long int _vl);
352
352
  extern void Slice_whatsapp_Receipt_append(long long int handle, long long int _vl);
353
353
 
354
- // --- wrapping struct: whatsapp.Presence ---
355
- //
356
- extern long long int whatsapp_Presence_CTor();
357
- extern char* whatsapp_Presence_JID_Get(long long int handle);
358
- extern void whatsapp_Presence_JID_Set(long long int handle, char* val);
359
- extern long long int whatsapp_Presence_Kind_Get(long long int handle);
360
- extern void whatsapp_Presence_Kind_Set(long long int handle, long long int val);
361
- extern long long int whatsapp_Presence_LastSeen_Get(long long int handle);
362
- extern void whatsapp_Presence_LastSeen_Set(long long int handle, long long int val);
363
-
364
- // --- wrapping struct: whatsapp.ChatState ---
365
- //
366
- extern long long int whatsapp_ChatState_CTor();
367
- extern long long int whatsapp_ChatState_Kind_Get(long long int handle);
368
- extern void whatsapp_ChatState_Kind_Set(long long int handle, long long int val);
369
- extern char* whatsapp_ChatState_JID_Get(long long int handle);
370
- extern void whatsapp_ChatState_JID_Set(long long int handle, char* val);
371
- extern char* whatsapp_ChatState_GroupJID_Get(long long int handle);
372
- extern void whatsapp_ChatState_GroupJID_Set(long long int handle, char* val);
373
-
374
- // --- wrapping struct: whatsapp.Group ---
375
- //
376
- extern long long int whatsapp_Group_CTor();
377
- extern char* whatsapp_Group_JID_Get(long long int handle);
378
- extern void whatsapp_Group_JID_Set(long long int handle, char* val);
379
- extern char* whatsapp_Group_Name_Get(long long int handle);
380
- extern void whatsapp_Group_Name_Set(long long int handle, char* val);
381
- extern long long int whatsapp_Group_Subject_Get(long long int handle);
382
- extern void whatsapp_Group_Subject_Set(long long int handle, long long int val);
383
- extern char* whatsapp_Group_Nickname_Get(long long int handle);
384
- extern void whatsapp_Group_Nickname_Set(long long int handle, char* val);
385
- extern long long int whatsapp_Group_Participants_Get(long long int handle);
386
- extern void whatsapp_Group_Participants_Set(long long int handle, long long int val);
387
-
388
- // --- wrapping struct: whatsapp.LinkedDevice ---
354
+ // --- wrapping struct: whatsapp.Gateway ---
389
355
  //
390
- extern long long int whatsapp_LinkedDevice_CTor();
391
- extern char* whatsapp_LinkedDevice_ID_Get(long long int handle);
392
- extern void whatsapp_LinkedDevice_ID_Set(long long int handle, char* val);
393
- extern long long int whatsapp_LinkedDevice_JID(long long int _handle);
356
+ extern long long int whatsapp_Gateway_CTor();
357
+ extern char* whatsapp_Gateway_DBPath_Get(long long int handle);
358
+ extern void whatsapp_Gateway_DBPath_Set(long long int handle, char* val);
359
+ extern char* whatsapp_Gateway_Name_Get(long long int handle);
360
+ extern void whatsapp_Gateway_Name_Set(long long int handle, char* val);
361
+ extern char* whatsapp_Gateway_LogLevel_Get(long long int handle);
362
+ extern void whatsapp_Gateway_LogLevel_Set(long long int handle, char* val);
363
+ extern char* whatsapp_Gateway_TempDir_Get(long long int handle);
364
+ extern void whatsapp_Gateway_TempDir_Set(long long int handle, char* val);
365
+ extern char* whatsapp_Gateway_Init(long long int _handle);
366
+ extern long long int whatsapp_Gateway_NewSession(long long int _handle, long long int device);
367
+ extern char* whatsapp_Gateway_CleanupSession(long long int _handle, long long int device);
394
368
 
395
369
  // --- wrapping struct: whatsapp.Location ---
396
370
  //
@@ -410,85 +384,46 @@ extern void whatsapp_Location_Address_Set(long long int handle, char* val);
410
384
  extern char* whatsapp_Location_URL_Get(long long int handle);
411
385
  extern void whatsapp_Location_URL_Set(long long int handle, char* val);
412
386
 
413
- // --- wrapping struct: whatsapp.Poll ---
414
- //
415
- extern long long int whatsapp_Poll_CTor();
416
- extern char* whatsapp_Poll_Title_Get(long long int handle);
417
- extern void whatsapp_Poll_Title_Set(long long int handle, char* val);
418
- extern long long int whatsapp_Poll_Options_Get(long long int handle);
419
- extern void whatsapp_Poll_Options_Set(long long int handle, long long int val);
420
-
421
- // --- wrapping struct: whatsapp.Attachment ---
422
- //
423
- extern long long int whatsapp_Attachment_CTor();
424
- extern char* whatsapp_Attachment_MIME_Get(long long int handle);
425
- extern void whatsapp_Attachment_MIME_Set(long long int handle, char* val);
426
- extern char* whatsapp_Attachment_Filename_Get(long long int handle);
427
- extern void whatsapp_Attachment_Filename_Set(long long int handle, char* val);
428
- extern char* whatsapp_Attachment_Caption_Get(long long int handle);
429
- extern void whatsapp_Attachment_Caption_Set(long long int handle, char* val);
430
- extern long long int whatsapp_Attachment_Data_Get(long long int handle);
431
- extern void whatsapp_Attachment_Data_Set(long long int handle, long long int val);
432
- extern long long int whatsapp_Attachment_GetSpec(long long int _handle, long long int ctx);
433
-
434
- // --- wrapping struct: whatsapp.Call ---
435
- //
436
- extern long long int whatsapp_Call_CTor();
437
- extern long long int whatsapp_Call_State_Get(long long int handle);
438
- extern void whatsapp_Call_State_Set(long long int handle, long long int val);
439
- extern char* whatsapp_Call_JID_Get(long long int handle);
440
- extern void whatsapp_Call_JID_Set(long long int handle, char* val);
441
- extern long long int whatsapp_Call_Timestamp_Get(long long int handle);
442
- extern void whatsapp_Call_Timestamp_Set(long long int handle, long long int val);
443
-
444
- // --- wrapping struct: whatsapp.Gateway ---
445
- //
446
- extern long long int whatsapp_Gateway_CTor();
447
- extern char* whatsapp_Gateway_DBPath_Get(long long int handle);
448
- extern void whatsapp_Gateway_DBPath_Set(long long int handle, char* val);
449
- extern char* whatsapp_Gateway_Name_Get(long long int handle);
450
- extern void whatsapp_Gateway_Name_Set(long long int handle, char* val);
451
- extern char* whatsapp_Gateway_LogLevel_Get(long long int handle);
452
- extern void whatsapp_Gateway_LogLevel_Set(long long int handle, char* val);
453
- extern char* whatsapp_Gateway_TempDir_Get(long long int handle);
454
- extern void whatsapp_Gateway_TempDir_Set(long long int handle, char* val);
455
- extern char* whatsapp_Gateway_Init(long long int _handle);
456
- extern long long int whatsapp_Gateway_NewSession(long long int _handle, long long int device);
457
- extern char* whatsapp_Gateway_CleanupSession(long long int _handle, long long int device);
458
-
459
- // --- wrapping struct: whatsapp.GroupParticipant ---
387
+ // --- wrapping struct: whatsapp.PollOption ---
460
388
  //
461
- extern long long int whatsapp_GroupParticipant_CTor();
462
- extern char* whatsapp_GroupParticipant_JID_Get(long long int handle);
463
- extern void whatsapp_GroupParticipant_JID_Set(long long int handle, char* val);
464
- extern long long int whatsapp_GroupParticipant_Affiliation_Get(long long int handle);
465
- extern void whatsapp_GroupParticipant_Affiliation_Set(long long int handle, long long int val);
466
- extern long long int whatsapp_GroupParticipant_Action_Get(long long int handle);
467
- extern void whatsapp_GroupParticipant_Action_Set(long long int handle, long long int val);
389
+ extern long long int whatsapp_PollOption_CTor();
390
+ extern char* whatsapp_PollOption_Title_Get(long long int handle);
391
+ extern void whatsapp_PollOption_Title_Set(long long int handle, char* val);
468
392
 
469
- // --- wrapping struct: whatsapp.GroupSubject ---
393
+ // --- wrapping struct: whatsapp.Session ---
470
394
  //
471
- extern long long int whatsapp_GroupSubject_CTor();
472
- extern char* whatsapp_GroupSubject_Subject_Get(long long int handle);
473
- extern void whatsapp_GroupSubject_Subject_Set(long long int handle, char* val);
474
- extern long long int whatsapp_GroupSubject_SetAt_Get(long long int handle);
475
- extern void whatsapp_GroupSubject_SetAt_Set(long long int handle, long long int val);
476
- extern char* whatsapp_GroupSubject_SetByJID_Get(long long int handle);
477
- extern void whatsapp_GroupSubject_SetByJID_Set(long long int handle, char* val);
395
+ extern long long int whatsapp_Session_CTor();
396
+ extern char* whatsapp_Session_Login(long long int _handle);
397
+ extern char* whatsapp_Session_Logout(long long int _handle);
398
+ extern char* whatsapp_Session_Disconnect(long long int _handle);
399
+ extern char* whatsapp_Session_PairPhone(long long int _handle, char* phone);
400
+ extern char* whatsapp_Session_SendMessage(long long int _handle, long long int message);
401
+ extern char* whatsapp_Session_GenerateMessageID(long long int _handle);
402
+ extern char* whatsapp_Session_SendChatState(long long int _handle, long long int state);
403
+ extern char* whatsapp_Session_SendReceipt(long long int _handle, long long int receipt);
404
+ extern char* whatsapp_Session_SendPresence(long long int _handle, long long int presence, char* statusMessage);
405
+ extern long long int whatsapp_Session_GetContacts(long long int _handle, char refresh);
406
+ extern long long int whatsapp_Session_GetGroups(long long int _handle);
407
+ extern long long int whatsapp_Session_CreateGroup(long long int _handle, char* name, long long int participants);
408
+ extern char* whatsapp_Session_LeaveGroup(long long int _handle, char* resourceID);
409
+ extern long long int whatsapp_Session_GetAvatar(long long int _handle, char* resourceID, char* avatarID);
410
+ extern char* whatsapp_Session_SetAvatar(long long int _handle, char* resourceID, long long int avatar);
411
+ extern char* whatsapp_Session_SetGroupName(long long int _handle, char* resourceID, char* name);
412
+ extern char* whatsapp_Session_SetGroupTopic(long long int _handle, char* resourceID, char* topic);
413
+ extern long long int whatsapp_Session_UpdateGroupParticipants(long long int _handle, char* resourceID, long long int participants);
414
+ extern long long int whatsapp_Session_FindContact(long long int _handle, char* phone);
415
+ extern char* whatsapp_Session_RequestMessageHistory(long long int _handle, char* resourceID, long long int oldestMessage);
416
+ extern void whatsapp_Session_SetEventHandler(long long int _handle, PyObject* h, char goRun);
478
417
 
479
- // --- wrapping struct: whatsapp.Preview ---
418
+ // --- wrapping struct: whatsapp.Album ---
480
419
  //
481
- extern long long int whatsapp_Preview_CTor();
482
- extern long long int whatsapp_Preview_Kind_Get(long long int handle);
483
- extern void whatsapp_Preview_Kind_Set(long long int handle, long long int val);
484
- extern char* whatsapp_Preview_URL_Get(long long int handle);
485
- extern void whatsapp_Preview_URL_Set(long long int handle, char* val);
486
- extern char* whatsapp_Preview_Title_Get(long long int handle);
487
- extern void whatsapp_Preview_Title_Set(long long int handle, char* val);
488
- extern char* whatsapp_Preview_Description_Get(long long int handle);
489
- extern void whatsapp_Preview_Description_Set(long long int handle, char* val);
490
- extern long long int whatsapp_Preview_Thumbnail_Get(long long int handle);
491
- extern void whatsapp_Preview_Thumbnail_Set(long long int handle, long long int val);
420
+ extern long long int whatsapp_Album_CTor();
421
+ extern char whatsapp_Album_IsAlbum_Get(long long int handle);
422
+ extern void whatsapp_Album_IsAlbum_Set(long long int handle, char val);
423
+ extern long long int whatsapp_Album_ImageCount_Get(long long int handle);
424
+ extern void whatsapp_Album_ImageCount_Set(long long int handle, long long int val);
425
+ extern long long int whatsapp_Album_VideoCount_Get(long long int handle);
426
+ extern void whatsapp_Album_VideoCount_Set(long long int handle, long long int val);
492
427
 
493
428
  // --- wrapping struct: whatsapp.Avatar ---
494
429
  //
@@ -498,6 +433,14 @@ extern void whatsapp_Avatar_ID_Set(long long int handle, char* val);
498
433
  extern char* whatsapp_Avatar_URL_Get(long long int handle);
499
434
  extern void whatsapp_Avatar_URL_Set(long long int handle, char* val);
500
435
 
436
+ // --- wrapping struct: whatsapp.Contact ---
437
+ //
438
+ extern long long int whatsapp_Contact_CTor();
439
+ extern char* whatsapp_Contact_JID_Get(long long int handle);
440
+ extern void whatsapp_Contact_JID_Set(long long int handle, char* val);
441
+ extern char* whatsapp_Contact_Name_Get(long long int handle);
442
+ extern void whatsapp_Contact_Name_Set(long long int handle, char* val);
443
+
501
444
  // --- wrapping struct: whatsapp.EventPayload ---
502
445
  //
503
446
  extern long long int whatsapp_EventPayload_CTor();
@@ -522,13 +465,39 @@ extern void whatsapp_EventPayload_Group_Set(long long int handle, long long int
522
465
  extern long long int whatsapp_EventPayload_Call_Get(long long int handle);
523
466
  extern void whatsapp_EventPayload_Call_Set(long long int handle, long long int val);
524
467
 
525
- // --- wrapping struct: whatsapp.Contact ---
468
+ // --- wrapping struct: whatsapp.Group ---
526
469
  //
527
- extern long long int whatsapp_Contact_CTor();
528
- extern char* whatsapp_Contact_JID_Get(long long int handle);
529
- extern void whatsapp_Contact_JID_Set(long long int handle, char* val);
530
- extern char* whatsapp_Contact_Name_Get(long long int handle);
531
- extern void whatsapp_Contact_Name_Set(long long int handle, char* val);
470
+ extern long long int whatsapp_Group_CTor();
471
+ extern char* whatsapp_Group_JID_Get(long long int handle);
472
+ extern void whatsapp_Group_JID_Set(long long int handle, char* val);
473
+ extern char* whatsapp_Group_Name_Get(long long int handle);
474
+ extern void whatsapp_Group_Name_Set(long long int handle, char* val);
475
+ extern long long int whatsapp_Group_Subject_Get(long long int handle);
476
+ extern void whatsapp_Group_Subject_Set(long long int handle, long long int val);
477
+ extern char* whatsapp_Group_Nickname_Get(long long int handle);
478
+ extern void whatsapp_Group_Nickname_Set(long long int handle, char* val);
479
+ extern long long int whatsapp_Group_Participants_Get(long long int handle);
480
+ extern void whatsapp_Group_Participants_Set(long long int handle, long long int val);
481
+
482
+ // --- wrapping struct: whatsapp.GroupParticipant ---
483
+ //
484
+ extern long long int whatsapp_GroupParticipant_CTor();
485
+ extern char* whatsapp_GroupParticipant_JID_Get(long long int handle);
486
+ extern void whatsapp_GroupParticipant_JID_Set(long long int handle, char* val);
487
+ extern long long int whatsapp_GroupParticipant_Affiliation_Get(long long int handle);
488
+ extern void whatsapp_GroupParticipant_Affiliation_Set(long long int handle, long long int val);
489
+ extern long long int whatsapp_GroupParticipant_Action_Get(long long int handle);
490
+ extern void whatsapp_GroupParticipant_Action_Set(long long int handle, long long int val);
491
+
492
+ // --- wrapping struct: whatsapp.GroupSubject ---
493
+ //
494
+ extern long long int whatsapp_GroupSubject_CTor();
495
+ extern char* whatsapp_GroupSubject_Subject_Get(long long int handle);
496
+ extern void whatsapp_GroupSubject_Subject_Set(long long int handle, char* val);
497
+ extern long long int whatsapp_GroupSubject_SetAt_Get(long long int handle);
498
+ extern void whatsapp_GroupSubject_SetAt_Set(long long int handle, long long int val);
499
+ extern char* whatsapp_GroupSubject_SetByJID_Get(long long int handle);
500
+ extern void whatsapp_GroupSubject_SetByJID_Set(long long int handle, char* val);
532
501
 
533
502
  // --- wrapping struct: whatsapp.Message ---
534
503
  //
@@ -572,11 +541,75 @@ extern void whatsapp_Message_Receipts_Set(long long int handle, long long int va
572
541
  extern long long int whatsapp_Message_Reactions_Get(long long int handle);
573
542
  extern void whatsapp_Message_Reactions_Set(long long int handle, long long int val);
574
543
 
575
- // --- wrapping struct: whatsapp.PollOption ---
544
+ // --- wrapping struct: whatsapp.Attachment ---
576
545
  //
577
- extern long long int whatsapp_PollOption_CTor();
578
- extern char* whatsapp_PollOption_Title_Get(long long int handle);
579
- extern void whatsapp_PollOption_Title_Set(long long int handle, char* val);
546
+ extern long long int whatsapp_Attachment_CTor();
547
+ extern char* whatsapp_Attachment_MIME_Get(long long int handle);
548
+ extern void whatsapp_Attachment_MIME_Set(long long int handle, char* val);
549
+ extern char* whatsapp_Attachment_Filename_Get(long long int handle);
550
+ extern void whatsapp_Attachment_Filename_Set(long long int handle, char* val);
551
+ extern char* whatsapp_Attachment_Caption_Get(long long int handle);
552
+ extern void whatsapp_Attachment_Caption_Set(long long int handle, char* val);
553
+ extern long long int whatsapp_Attachment_Data_Get(long long int handle);
554
+ extern void whatsapp_Attachment_Data_Set(long long int handle, long long int val);
555
+ extern long long int whatsapp_Attachment_GetSpec(long long int _handle, long long int ctx);
556
+
557
+ // --- wrapping struct: whatsapp.Presence ---
558
+ //
559
+ extern long long int whatsapp_Presence_CTor();
560
+ extern char* whatsapp_Presence_JID_Get(long long int handle);
561
+ extern void whatsapp_Presence_JID_Set(long long int handle, char* val);
562
+ extern long long int whatsapp_Presence_Kind_Get(long long int handle);
563
+ extern void whatsapp_Presence_Kind_Set(long long int handle, long long int val);
564
+ extern long long int whatsapp_Presence_LastSeen_Get(long long int handle);
565
+ extern void whatsapp_Presence_LastSeen_Set(long long int handle, long long int val);
566
+
567
+ // --- wrapping struct: whatsapp.Preview ---
568
+ //
569
+ extern long long int whatsapp_Preview_CTor();
570
+ extern long long int whatsapp_Preview_Kind_Get(long long int handle);
571
+ extern void whatsapp_Preview_Kind_Set(long long int handle, long long int val);
572
+ extern char* whatsapp_Preview_URL_Get(long long int handle);
573
+ extern void whatsapp_Preview_URL_Set(long long int handle, char* val);
574
+ extern char* whatsapp_Preview_Title_Get(long long int handle);
575
+ extern void whatsapp_Preview_Title_Set(long long int handle, char* val);
576
+ extern char* whatsapp_Preview_Description_Get(long long int handle);
577
+ extern void whatsapp_Preview_Description_Set(long long int handle, char* val);
578
+ extern long long int whatsapp_Preview_Thumbnail_Get(long long int handle);
579
+ extern void whatsapp_Preview_Thumbnail_Set(long long int handle, long long int val);
580
+
581
+ // --- wrapping struct: whatsapp.LinkedDevice ---
582
+ //
583
+ extern long long int whatsapp_LinkedDevice_CTor();
584
+ extern char* whatsapp_LinkedDevice_ID_Get(long long int handle);
585
+ extern void whatsapp_LinkedDevice_ID_Set(long long int handle, char* val);
586
+ extern long long int whatsapp_LinkedDevice_JID(long long int _handle);
587
+
588
+ // --- wrapping struct: whatsapp.ChatState ---
589
+ //
590
+ extern long long int whatsapp_ChatState_CTor();
591
+ extern long long int whatsapp_ChatState_Kind_Get(long long int handle);
592
+ extern void whatsapp_ChatState_Kind_Set(long long int handle, long long int val);
593
+ extern char* whatsapp_ChatState_JID_Get(long long int handle);
594
+ extern void whatsapp_ChatState_JID_Set(long long int handle, char* val);
595
+ extern char* whatsapp_ChatState_GroupJID_Get(long long int handle);
596
+ extern void whatsapp_ChatState_GroupJID_Set(long long int handle, char* val);
597
+
598
+ // --- wrapping struct: whatsapp.Connect ---
599
+ //
600
+ extern long long int whatsapp_Connect_CTor();
601
+ extern char* whatsapp_Connect_JID_Get(long long int handle);
602
+ extern void whatsapp_Connect_JID_Set(long long int handle, char* val);
603
+ extern char* whatsapp_Connect_Error_Get(long long int handle);
604
+ extern void whatsapp_Connect_Error_Set(long long int handle, char* val);
605
+
606
+ // --- wrapping struct: whatsapp.Poll ---
607
+ //
608
+ extern long long int whatsapp_Poll_CTor();
609
+ extern char* whatsapp_Poll_Title_Get(long long int handle);
610
+ extern void whatsapp_Poll_Title_Set(long long int handle, char* val);
611
+ extern long long int whatsapp_Poll_Options_Get(long long int handle);
612
+ extern void whatsapp_Poll_Options_Set(long long int handle, long long int val);
580
613
 
581
614
  // --- wrapping struct: whatsapp.Receipt ---
582
615
  //
@@ -594,48 +627,15 @@ extern void whatsapp_Receipt_Timestamp_Set(long long int handle, long long int v
594
627
  extern char whatsapp_Receipt_IsCarbon_Get(long long int handle);
595
628
  extern void whatsapp_Receipt_IsCarbon_Set(long long int handle, char val);
596
629
 
597
- // --- wrapping struct: whatsapp.Session ---
598
- //
599
- extern long long int whatsapp_Session_CTor();
600
- extern char* whatsapp_Session_Login(long long int _handle);
601
- extern char* whatsapp_Session_Logout(long long int _handle);
602
- extern char* whatsapp_Session_Disconnect(long long int _handle);
603
- extern char* whatsapp_Session_PairPhone(long long int _handle, char* phone);
604
- extern char* whatsapp_Session_SendMessage(long long int _handle, long long int message);
605
- extern char* whatsapp_Session_GenerateMessageID(long long int _handle);
606
- extern char* whatsapp_Session_SendChatState(long long int _handle, long long int state);
607
- extern char* whatsapp_Session_SendReceipt(long long int _handle, long long int receipt);
608
- extern char* whatsapp_Session_SendPresence(long long int _handle, long long int presence, char* statusMessage);
609
- extern long long int whatsapp_Session_GetContacts(long long int _handle, char refresh);
610
- extern long long int whatsapp_Session_GetGroups(long long int _handle);
611
- extern long long int whatsapp_Session_CreateGroup(long long int _handle, char* name, long long int participants);
612
- extern char* whatsapp_Session_LeaveGroup(long long int _handle, char* resourceID);
613
- extern long long int whatsapp_Session_GetAvatar(long long int _handle, char* resourceID, char* avatarID);
614
- extern char* whatsapp_Session_SetAvatar(long long int _handle, char* resourceID, long long int avatar);
615
- extern char* whatsapp_Session_SetGroupName(long long int _handle, char* resourceID, char* name);
616
- extern char* whatsapp_Session_SetGroupTopic(long long int _handle, char* resourceID, char* topic);
617
- extern long long int whatsapp_Session_UpdateGroupParticipants(long long int _handle, char* resourceID, long long int participants);
618
- extern long long int whatsapp_Session_FindContact(long long int _handle, char* phone);
619
- extern char* whatsapp_Session_RequestMessageHistory(long long int _handle, char* resourceID, long long int oldestMessage);
620
- extern void whatsapp_Session_SetEventHandler(long long int _handle, PyObject* h, char goRun);
621
-
622
- // --- wrapping struct: whatsapp.Album ---
623
- //
624
- extern long long int whatsapp_Album_CTor();
625
- extern char whatsapp_Album_IsAlbum_Get(long long int handle);
626
- extern void whatsapp_Album_IsAlbum_Set(long long int handle, char val);
627
- extern long long int whatsapp_Album_ImageCount_Get(long long int handle);
628
- extern void whatsapp_Album_ImageCount_Set(long long int handle, long long int val);
629
- extern long long int whatsapp_Album_VideoCount_Get(long long int handle);
630
- extern void whatsapp_Album_VideoCount_Set(long long int handle, long long int val);
631
-
632
- // --- wrapping struct: whatsapp.Connect ---
630
+ // --- wrapping struct: whatsapp.Call ---
633
631
  //
634
- extern long long int whatsapp_Connect_CTor();
635
- extern char* whatsapp_Connect_JID_Get(long long int handle);
636
- extern void whatsapp_Connect_JID_Set(long long int handle, char* val);
637
- extern char* whatsapp_Connect_Error_Get(long long int handle);
638
- extern void whatsapp_Connect_Error_Set(long long int handle, char* val);
632
+ extern long long int whatsapp_Call_CTor();
633
+ extern long long int whatsapp_Call_State_Get(long long int handle);
634
+ extern void whatsapp_Call_State_Set(long long int handle, long long int val);
635
+ extern char* whatsapp_Call_JID_Get(long long int handle);
636
+ extern void whatsapp_Call_JID_Set(long long int handle, char* val);
637
+ extern long long int whatsapp_Call_Timestamp_Get(long long int handle);
638
+ extern void whatsapp_Call_Timestamp_Set(long long int handle, long long int val);
639
639
  extern long long int whatsapp_NewGateway();
640
640
 
641
641
  #ifdef __cplusplus
slidge_whatsapp/go.mod CHANGED
@@ -10,7 +10,7 @@ require (
10
10
  github.com/h2non/filetype v1.1.3
11
11
  github.com/mattn/go-sqlite3 v1.14.28
12
12
  go.mau.fi/libsignal v0.2.0
13
- go.mau.fi/whatsmeow v0.0.0-20250521125706-91ac75c2f61a
13
+ go.mau.fi/whatsmeow v0.0.0-20250701221811-9adf672adc90
14
14
  golang.org/x/image v0.27.0
15
15
  )
16
16
 
@@ -24,11 +24,11 @@ require (
24
24
  github.com/mattn/go-isatty v0.0.20 // indirect
25
25
  github.com/petermattis/goid v0.0.0-20250508124226-395b08cebbdb // indirect
26
26
  github.com/rs/zerolog v1.34.0 // indirect
27
- go.mau.fi/util v0.8.7 // indirect
28
- golang.org/x/crypto v0.38.0 // indirect
29
- golang.org/x/exp v0.0.0-20250506013437-ce4c2cf36ca6 // indirect
30
- golang.org/x/net v0.40.0 // indirect
27
+ go.mau.fi/util v0.8.8 // indirect
28
+ golang.org/x/crypto v0.39.0 // indirect
29
+ golang.org/x/exp v0.0.0-20250606033433-dcc06ee1d476 // indirect
30
+ golang.org/x/net v0.41.0 // indirect
31
31
  golang.org/x/sys v0.33.0 // indirect
32
- golang.org/x/text v0.25.0 // indirect
32
+ golang.org/x/text v0.26.0 // indirect
33
33
  google.golang.org/protobuf v1.36.6 // indirect
34
34
  )
slidge_whatsapp/go.sum CHANGED
@@ -5,8 +5,6 @@ github.com/DATA-DOG/go-sqlmock v1.5.2/go.mod h1:88MAG/4G7SMwSE3CeA0ZKzrT5CiOU3OJ
5
5
  github.com/coreos/go-systemd/v22 v22.5.0/go.mod h1:Y58oyj3AT4RCenI/lSvhwexgC+NSVTIJ3seZv2GcEnc=
6
6
  github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c=
7
7
  github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
8
- github.com/ebitengine/purego v0.8.3 h1:K+0AjQp63JEZTEMZiwsI9g0+hAMNohwUOtY0RPGexmc=
9
- github.com/ebitengine/purego v0.8.3/go.mod h1:iIjxzd6CiRiOG0UyXP+V1+jWqUXVjPKLAI0mRfJZTmQ=
10
8
  github.com/ebitengine/purego v0.8.4 h1:CF7LEKg5FFOsASUj0+QwaXf8Ht6TlFxg09+S9wz0omw=
11
9
  github.com/ebitengine/purego v0.8.4/go.mod h1:iIjxzd6CiRiOG0UyXP+V1+jWqUXVjPKLAI0mRfJZTmQ=
12
10
  github.com/gen2brain/go-fitz v1.24.14 h1:09weRkjVtLYNGo7l0J7DyOwBExbwi8SJ9h8YPhw9WEo=
@@ -45,29 +43,25 @@ github.com/stretchr/testify v1.10.0 h1:Xv5erBjTwe/5IxqUQTdXv5kgmIvbHo3QQyRwhJsOf
45
43
  github.com/stretchr/testify v1.10.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY=
46
44
  go.mau.fi/libsignal v0.2.0 h1:oRXj3OHhEJq51BFEM8/50UZblmWiTYH93hsNTPcbk90=
47
45
  go.mau.fi/libsignal v0.2.0/go.mod h1:tvjoDsMejgT38CXTXwqaYu8itBiY8O2Mb6biWvZBb9k=
48
- go.mau.fi/util v0.8.6 h1:AEK13rfgtiZJL2YsNK+W4ihhYCuukcRom8WPP/w/L54=
49
- go.mau.fi/util v0.8.6/go.mod h1:uNB3UTXFbkpp7xL1M/WvQks90B/L4gvbLpbS0603KOE=
50
- go.mau.fi/util v0.8.7 h1:ywKarPxouJQEEijTs4mPlxC7F4AWEKokEpWc+2TYy6c=
51
- go.mau.fi/util v0.8.7/go.mod h1:j6R3cENakc1f8HpQeFl0N15UiSTcNmIfDBNJUbL71RY=
52
- go.mau.fi/whatsmeow v0.0.0-20250514120708-22ca98ea604a h1:k9ggM9UTxHPRX8nUDMHdwqGFtNF/9RGkGUM1EYnKPMY=
53
- go.mau.fi/whatsmeow v0.0.0-20250514120708-22ca98ea604a/go.mod h1:0b/hOeTpA38V89YTtE2yqMKfDfaffj8gMu+AswqprQI=
54
- go.mau.fi/whatsmeow v0.0.0-20250521125706-91ac75c2f61a h1:PYtzz5wdma64I47CiquGicyubzg3HIPkH/jMzpmHu8g=
55
- go.mau.fi/whatsmeow v0.0.0-20250521125706-91ac75c2f61a/go.mod h1:Qy3L3BNBcnxfrAQ09lmFMa0ItZfg8zl9DzxKrptzfU4=
56
- golang.org/x/crypto v0.38.0 h1:jt+WWG8IZlBnVbomuhg2Mdq0+BBQaHbtqHEFEigjUV8=
57
- golang.org/x/crypto v0.38.0/go.mod h1:MvrbAqul58NNYPKnOra203SB9vpuZW0e+RRZV+Ggqjw=
58
- golang.org/x/exp v0.0.0-20250506013437-ce4c2cf36ca6 h1:y5zboxd6LQAqYIhHnB48p0ByQ/GnQx2BE33L8BOHQkI=
59
- golang.org/x/exp v0.0.0-20250506013437-ce4c2cf36ca6/go.mod h1:U6Lno4MTRCDY+Ba7aCcauB9T60gsv5s4ralQzP72ZoQ=
46
+ go.mau.fi/util v0.8.8 h1:OnuEEc/sIJFhnq4kFggiImUpcmnmL/xpvQMRu5Fiy5c=
47
+ go.mau.fi/util v0.8.8/go.mod h1:Y/kS3loxTEhy8Vill513EtPXr+CRDdae+Xj2BXXMy/c=
48
+ go.mau.fi/whatsmeow v0.0.0-20250701221811-9adf672adc90 h1:K9knC6oQMLPutKwDVnqdgrDEjMJ8D5nREE9Li3dH71k=
49
+ go.mau.fi/whatsmeow v0.0.0-20250701221811-9adf672adc90/go.mod h1:bEyyFvXlwr/18B2pOkdX1vWAx1+y1NJX+sCXVyw01UA=
50
+ golang.org/x/crypto v0.39.0 h1:SHs+kF4LP+f+p14esP5jAoDpHU8Gu/v9lFRK6IT5imM=
51
+ golang.org/x/crypto v0.39.0/go.mod h1:L+Xg3Wf6HoL4Bn4238Z6ft6KfEpN0tJGo53AAPC632U=
52
+ golang.org/x/exp v0.0.0-20250606033433-dcc06ee1d476 h1:bsqhLWFR6G6xiQcb+JoGqdKdRU6WzPWmK8E0jxTjzo4=
53
+ golang.org/x/exp v0.0.0-20250606033433-dcc06ee1d476/go.mod h1:3//PLf8L/X+8b4vuAfHzxeRUl04Adcb341+IGKfnqS8=
60
54
  golang.org/x/image v0.27.0 h1:C8gA4oWU/tKkdCfYT6T2u4faJu3MeNS5O8UPWlPF61w=
61
55
  golang.org/x/image v0.27.0/go.mod h1:xbdrClrAUway1MUTEZDq9mz/UpRwYAkFFNUslZtcB+g=
62
- golang.org/x/net v0.40.0 h1:79Xs7wF06Gbdcg4kdCCIQArK11Z1hr5POQ6+fIYHNuY=
63
- golang.org/x/net v0.40.0/go.mod h1:y0hY0exeL2Pku80/zKK7tpntoX23cqL3Oa6njdgRtds=
56
+ golang.org/x/net v0.41.0 h1:vBTly1HeNPEn3wtREYfy4GZ/NECgw2Cnl+nK6Nz3uvw=
57
+ golang.org/x/net v0.41.0/go.mod h1:B/K4NNqkfmg07DQYrbwvSluqCJOOXwUjeb/5lOisjbA=
64
58
  golang.org/x/sys v0.0.0-20220811171246-fbc7d0a398ab/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
65
59
  golang.org/x/sys v0.6.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
66
60
  golang.org/x/sys v0.12.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
67
61
  golang.org/x/sys v0.33.0 h1:q3i8TbbEz+JRD9ywIRlyRAQbM0qF7hu24q3teo2hbuw=
68
62
  golang.org/x/sys v0.33.0/go.mod h1:BJP2sWEmIv4KK5OTEluFJCKSidICx8ciO85XgH3Ak8k=
69
- golang.org/x/text v0.25.0 h1:qVyWApTSYLk/drJRO5mDlNYskwQznZmkpV2c8q9zls4=
70
- golang.org/x/text v0.25.0/go.mod h1:WEdwpYrmk1qmdHvhkSTNPm3app7v4rsT8F2UD6+VHIA=
63
+ golang.org/x/text v0.26.0 h1:P42AVeLghgTYr4+xUnTRKDMqpar+PtX7KWuNQL21L8M=
64
+ golang.org/x/text v0.26.0/go.mod h1:QK15LZJUUQVJxhz7wXgxSy/CJaTFjd0G+YLonydOVQA=
71
65
  google.golang.org/protobuf v1.36.6 h1:z1NpPI8ku2WgiWnf+t9wTPsn6eP1L7ksHUlkfLvd9xY=
72
66
  google.golang.org/protobuf v1.36.6/go.mod h1:jduwjTPXsFjZGTmRluh+L6NjiWu7pchiJ2/5YcXBHnY=
73
67
  gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA=
@@ -135,7 +135,11 @@ func (s Spec) commandLineArgs() ([]string, error) {
135
135
  if s.AudioCodec != "" && s.AudioCodec != CodecOpus {
136
136
  return nil, fmt.Errorf(errInvalidCodec, mime, CodecOpus, s.AudioCodec)
137
137
  }
138
- args = append(args, "-f", "ogg", "-c:a", "libopus")
138
+ args = append(args,
139
+ "-f", "ogg",
140
+ "-c:a", "libopus",
141
+ "-filter:a", "asetpts=N/SR/TB",
142
+ )
139
143
  case TypeM4A:
140
144
  if s.AudioCodec != "" && s.AudioCodec != CodecAAC {
141
145
  return nil, fmt.Errorf(errInvalidCodec, mime, CodecAAC, s.AudioCodec)
@@ -32,10 +32,5 @@ func WriteJSONData(w http.ResponseWriter, httpStatusCode int, data []byte) {
32
32
  }
33
33
 
34
34
  func WriteEmptyJSONResponse(w http.ResponseWriter, httpStatusCode int) {
35
- if AutoAllowCORS {
36
- AddCORSHeaders(w)
37
- }
38
- w.Header().Set("Content-Type", "application/json")
39
- w.WriteHeader(httpStatusCode)
40
- _, _ = w.Write([]byte("{}"))
35
+ WriteJSONData(w, httpStatusCode, []byte("{}"))
41
36
  }
@@ -0,0 +1,76 @@
1
+ // Copyright (c) 2025 Tulir Asokan
2
+ //
3
+ // This Source Code Form is subject to the terms of the Mozilla Public
4
+ // License, v. 2.0. If a copy of the MPL was not distributed with this
5
+ // file, You can obtain one at http://mozilla.org/MPL/2.0/.
6
+
7
+ package exstrings
8
+
9
+ import (
10
+ "crypto/sha256"
11
+ "crypto/subtle"
12
+ "strings"
13
+ "unsafe"
14
+ )
15
+
16
+ // UnsafeBytes returns a byte slice that points to the same memory as the input string.
17
+ //
18
+ // The returned byte slice must not be modified.
19
+ func UnsafeBytes(str string) []byte {
20
+ return unsafe.Slice(unsafe.StringData(str), len(str))
21
+ }
22
+
23
+ // SHA256 returns the SHA-256 hash of the input string without copying the string.
24
+ func SHA256(str string) [32]byte {
25
+ return sha256.Sum256(UnsafeBytes(str))
26
+ }
27
+
28
+ // ConstantTimeEqual compares two strings using [subtle.ConstantTimeCompare] without copying the strings.
29
+ //
30
+ // Note that ConstantTimeCompare is not constant time if the strings are of different length.
31
+ func ConstantTimeEqual(a, b string) bool {
32
+ return subtle.ConstantTimeCompare(UnsafeBytes(a), UnsafeBytes(b)) == 1
33
+ }
34
+
35
+ // LongestSequenceOf returns the length of the longest contiguous sequence of a single rune in a string.
36
+ func LongestSequenceOf(a string, b rune) int {
37
+ // IndexRune has some optimizations, so use it to find the starting point
38
+ firstIndex := strings.IndexRune(a, b)
39
+ if firstIndex == -1 {
40
+ return 0
41
+ }
42
+ count := 0
43
+ maxCount := 0
44
+ for _, r := range a[firstIndex:] {
45
+ if r == b {
46
+ count++
47
+ if count > maxCount {
48
+ maxCount = count
49
+ }
50
+ } else {
51
+ count = 0
52
+ }
53
+ }
54
+ return maxCount
55
+ }
56
+
57
+ // LongestSequenceOfFunc returns the length of the longest contiguous sequence of runes in a string.
58
+ //
59
+ // If the provided function returns zero or higher, the return value is added to the current count.
60
+ // If the return value is negative, the count is reset to zero.
61
+ func LongestSequenceOfFunc(a string, fn func(b rune) int) int {
62
+ count := 0
63
+ maxCount := 0
64
+ for _, r := range a {
65
+ val := fn(r)
66
+ if val < 0 {
67
+ count = 0
68
+ } else {
69
+ count += val
70
+ if count > maxCount {
71
+ maxCount = count
72
+ }
73
+ }
74
+ }
75
+ return maxCount
76
+ }
@@ -13,6 +13,8 @@ import (
13
13
  "google.golang.org/protobuf/proto"
14
14
 
15
15
  armadillo "go.mau.fi/whatsmeow/proto"
16
+ "go.mau.fi/whatsmeow/proto/armadilloutil"
17
+ "go.mau.fi/whatsmeow/proto/instamadilloTransportPayload"
16
18
  "go.mau.fi/whatsmeow/proto/waCommon"
17
19
  "go.mau.fi/whatsmeow/proto/waMsgApplication"
18
20
  "go.mau.fi/whatsmeow/proto/waMsgTransport"
@@ -20,11 +22,11 @@ import (
20
22
  "go.mau.fi/whatsmeow/types/events"
21
23
  )
22
24
 
23
- func (cli *Client) handleDecryptedArmadillo(ctx context.Context, info *types.MessageInfo, decrypted []byte, retryCount int) bool {
25
+ func (cli *Client) handleDecryptedArmadillo(ctx context.Context, info *types.MessageInfo, decrypted []byte, retryCount int) (handled, handlerFailed bool) {
24
26
  dec, err := decodeArmadillo(decrypted)
25
27
  if err != nil {
26
28
  cli.Log.Warnf("Failed to decode armadillo message from %s: %v", info.SourceString(), err)
27
- return false
29
+ return
28
30
  }
29
31
  dec.Info = *info
30
32
  dec.RetryCount = retryCount
@@ -37,9 +39,10 @@ func (cli *Client) handleDecryptedArmadillo(ctx context.Context, info *types.Mes
37
39
  }
38
40
  }
39
41
  if dec.Message != nil {
40
- cli.dispatchEvent(&dec)
42
+ handlerFailed = cli.dispatchEvent(&dec)
41
43
  }
42
- return true
44
+ handled = true
45
+ return
43
46
  }
44
47
 
45
48
  func decodeArmadillo(data []byte) (dec events.FBMessage, err error) {
@@ -52,11 +55,23 @@ func decodeArmadillo(data []byte) (dec events.FBMessage, err error) {
52
55
  if transport.GetPayload() == nil {
53
56
  return
54
57
  }
55
- application, err := transport.GetPayload().Decode()
58
+ appPayloadVer := transport.GetPayload().GetApplicationPayload().GetVersion()
59
+ switch appPayloadVer {
60
+ case waMsgTransport.FBMessageApplicationVersion:
61
+ return decodeFBArmadillo(&transport)
62
+ case waMsgTransport.IGMessageApplicationVersion:
63
+ return decodeIGArmadillo(&transport)
64
+ default:
65
+ return dec, fmt.Errorf("%w %d in MessageTransport", armadilloutil.ErrUnsupportedVersion, appPayloadVer)
66
+ }
67
+ }
68
+
69
+ func decodeFBArmadillo(transport *waMsgTransport.MessageTransport) (dec events.FBMessage, err error) {
70
+ application, err := transport.GetPayload().DecodeFB()
56
71
  if err != nil {
57
72
  return dec, fmt.Errorf("failed to unmarshal application: %w", err)
58
73
  }
59
- dec.Application = application
74
+ dec.FBApplication = application
60
75
  if application.GetPayload() == nil {
61
76
  return
62
77
  }
@@ -98,3 +113,20 @@ func decodeArmadillo(data []byte) (dec events.FBMessage, err error) {
98
113
  }
99
114
  return
100
115
  }
116
+
117
+ func decodeIGArmadillo(transport *waMsgTransport.MessageTransport) (dec events.FBMessage, err error) {
118
+ innerTransport, err := transport.GetPayload().DecodeIG()
119
+ if err != nil {
120
+ return dec, fmt.Errorf("failed to unmarshal IG transport: %w", err)
121
+ }
122
+ dec.IGTransport = innerTransport
123
+ switch typedContent := innerTransport.GetTransportPayload().(type) {
124
+ case *instamadilloTransportPayload.TransportPayload_Add:
125
+ dec.Message = typedContent.Add
126
+ case *instamadilloTransportPayload.TransportPayload_Supplement:
127
+ dec.Message = typedContent.Supplement
128
+ case *instamadilloTransportPayload.TransportPayload_Delete:
129
+ dec.Message = typedContent.Delete
130
+ }
131
+ return
132
+ }
@@ -159,7 +159,7 @@ func (w *binaryEncoder) writeStringRaw(value string) {
159
159
  }
160
160
 
161
161
  func (w *binaryEncoder) writeJID(jid types.JID) {
162
- if (jid.Server == types.DefaultUserServer && jid.Device > 0) || jid.Server == types.HiddenUserServer || jid.Server == types.HostedServer {
162
+ if ((jid.Server == types.DefaultUserServer || jid.Server == types.HiddenUserServer) && jid.Device > 0) || jid.Server == types.HostedServer {
163
163
  w.pushByte(token.ADJID)
164
164
  w.pushByte(jid.ActualAgent())
165
165
  w.pushByte(uint8(jid.Device))