@dyyxyzz/baileys-mod 6.0.43 → 6.0.44
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.
- package/lib/Socket/messages-send.js +137 -41
- package/package.json +1 -1
|
@@ -17,6 +17,76 @@ const newsletter_1 = require("./newsletter");
|
|
|
17
17
|
const WAUSync_1 = require("../WAUSync")
|
|
18
18
|
const kikyy = require('./dugong');
|
|
19
19
|
var ListType = WAProto_1.proto.Message.ListMessage.ListType;
|
|
20
|
+
|
|
21
|
+
// TAMBAHAN BARU: Helper functions untuk button di newsletter
|
|
22
|
+
const getAdditionalNode = (buttonType) => {
|
|
23
|
+
const nodes = []
|
|
24
|
+
|
|
25
|
+
switch(buttonType) {
|
|
26
|
+
case 'list':
|
|
27
|
+
nodes.push({
|
|
28
|
+
tag: 'biz',
|
|
29
|
+
attrs: {},
|
|
30
|
+
content: [{
|
|
31
|
+
tag: 'list_message',
|
|
32
|
+
attrs: { v: '2' }
|
|
33
|
+
}]
|
|
34
|
+
})
|
|
35
|
+
break
|
|
36
|
+
|
|
37
|
+
case 'buttons':
|
|
38
|
+
nodes.push({
|
|
39
|
+
tag: 'biz',
|
|
40
|
+
attrs: {},
|
|
41
|
+
content: [{
|
|
42
|
+
tag: 'buttons_message',
|
|
43
|
+
attrs: { v: '2' }
|
|
44
|
+
}]
|
|
45
|
+
})
|
|
46
|
+
break
|
|
47
|
+
|
|
48
|
+
case 'interactive':
|
|
49
|
+
case 'native_flow':
|
|
50
|
+
nodes.push({
|
|
51
|
+
tag: 'biz',
|
|
52
|
+
attrs: {},
|
|
53
|
+
content: [{
|
|
54
|
+
tag: 'native_flow',
|
|
55
|
+
attrs: { v: '3' }
|
|
56
|
+
}]
|
|
57
|
+
})
|
|
58
|
+
break
|
|
59
|
+
|
|
60
|
+
case 'review_and_pay':
|
|
61
|
+
case 'review_order':
|
|
62
|
+
case 'payment_info':
|
|
63
|
+
case 'payment_status':
|
|
64
|
+
case 'payment_method':
|
|
65
|
+
nodes.push({
|
|
66
|
+
tag: 'biz',
|
|
67
|
+
attrs: {},
|
|
68
|
+
content: [{
|
|
69
|
+
tag: 'payment',
|
|
70
|
+
attrs: { v: '2' }
|
|
71
|
+
}]
|
|
72
|
+
})
|
|
73
|
+
break
|
|
74
|
+
}
|
|
75
|
+
|
|
76
|
+
return nodes
|
|
77
|
+
}
|
|
78
|
+
|
|
79
|
+
const getBinaryNodeFilter = (nodes) => {
|
|
80
|
+
if (!nodes || !Array.isArray(nodes) || nodes.length === 0) return false
|
|
81
|
+
|
|
82
|
+
return nodes.some(node =>
|
|
83
|
+
node.tag === 'biz' ||
|
|
84
|
+
node.tag === 'bot' ||
|
|
85
|
+
node.tag === 'native_flow' ||
|
|
86
|
+
node.tag === 'payment'
|
|
87
|
+
)
|
|
88
|
+
}
|
|
89
|
+
|
|
20
90
|
const makeMessagesSocket = (config) => {
|
|
21
91
|
const {
|
|
22
92
|
logger,
|
|
@@ -443,25 +513,27 @@ const makeMessagesSocket = (config) => {
|
|
|
443
513
|
const patched = await patchMessageBeforeSending(message, [])
|
|
444
514
|
const bytes = Utils_1.encodeNewsletterMessage(patched)
|
|
445
515
|
|
|
446
|
-
//
|
|
516
|
+
// Detect button type dan media type
|
|
447
517
|
const buttonType = getButtonType(patched)
|
|
448
518
|
const mediaType = getMediaType(patched)
|
|
449
519
|
|
|
450
|
-
// Set
|
|
520
|
+
// Set extraAttrs untuk newsletter
|
|
451
521
|
if (mediaType) {
|
|
452
522
|
extraAttrs['mediatype'] = mediaType
|
|
453
523
|
}
|
|
454
524
|
|
|
455
|
-
// Set decrypt-fail untuk message tertentu
|
|
456
525
|
if (patched.pinInChatMessage || patched.keepInChatMessage ||
|
|
457
526
|
patched.reactionMessage || patched.protocolMessage?.editedMessage) {
|
|
458
527
|
extraAttrs['decrypt-fail'] = 'hide'
|
|
459
528
|
}
|
|
460
529
|
|
|
461
|
-
// Tambah native flow name kalo ada
|
|
462
530
|
if (patched.interactiveResponseMessage?.nativeFlowResponseMessage) {
|
|
463
531
|
extraAttrs['native_flow_name'] = patched.interactiveResponseMessage?.nativeFlowResponseMessage.name
|
|
464
532
|
}
|
|
533
|
+
|
|
534
|
+
if (patched.interactiveMessage?.nativeFlowMessage) {
|
|
535
|
+
extraAttrs['native_flow_name'] = patched.interactiveMessage?.nativeFlowMessage?.name || 'flow'
|
|
536
|
+
}
|
|
465
537
|
|
|
466
538
|
binaryNodeContent.push({
|
|
467
539
|
tag: 'plaintext',
|
|
@@ -469,17 +541,20 @@ const makeMessagesSocket = (config) => {
|
|
|
469
541
|
content: bytes
|
|
470
542
|
})
|
|
471
543
|
|
|
472
|
-
|
|
473
|
-
|
|
474
|
-
const
|
|
544
|
+
// TAMBAHAN: Push button nodes untuk newsletter
|
|
545
|
+
if (buttonType && !didPushAdditional) {
|
|
546
|
+
const content = getAdditionalNode(buttonType)
|
|
547
|
+
const filteredNode = getBinaryNodeFilter(additionalNodes || [])
|
|
475
548
|
|
|
476
|
-
if (filteredNode) {
|
|
549
|
+
if (filteredNode && additionalNodes) {
|
|
550
|
+
binaryNodeContent.push(...additionalNodes)
|
|
477
551
|
didPushAdditional = true
|
|
478
|
-
|
|
479
|
-
} else {
|
|
552
|
+
} else if (content && content.length > 0) {
|
|
480
553
|
binaryNodeContent.push(...content)
|
|
554
|
+
didPushAdditional = true
|
|
481
555
|
}
|
|
482
|
-
|
|
556
|
+
|
|
557
|
+
logger.debug({ jid, buttonType }, 'adding button node to newsletter')
|
|
483
558
|
}
|
|
484
559
|
}
|
|
485
560
|
else {
|
|
@@ -549,9 +624,24 @@ const makeMessagesSocket = (config) => {
|
|
|
549
624
|
},
|
|
550
625
|
content: binaryNodeContent
|
|
551
626
|
}
|
|
552
|
-
|
|
553
|
-
|
|
554
|
-
|
|
627
|
+
if (isNewsletter && !didPushAdditional) {
|
|
628
|
+
const buttonType = getButtonType(messages)
|
|
629
|
+
|
|
630
|
+
if (buttonType) {
|
|
631
|
+
const content = WABinary_1.getAdditionalNode(buttonType)
|
|
632
|
+
const filteredNode = WABinary_1.getBinaryNodeFilter(additionalNodes || [])
|
|
633
|
+
|
|
634
|
+
if (filteredNode && additionalNodes) {
|
|
635
|
+
stanza.content.push(...additionalNodes)
|
|
636
|
+
didPushAdditional = true
|
|
637
|
+
} else if (content && content.length > 0) {
|
|
638
|
+
stanza.content.push(...content)
|
|
639
|
+
didPushAdditional = true
|
|
640
|
+
}
|
|
641
|
+
|
|
642
|
+
logger.debug({ jid, buttonType }, 'adding button node to newsletter')
|
|
643
|
+
}
|
|
644
|
+
}
|
|
555
645
|
if (participant) {
|
|
556
646
|
if (WABinary_1.isJidGroup(destinationJid)) {
|
|
557
647
|
stanza.attrs.to = destinationJid;
|
|
@@ -702,34 +792,40 @@ const makeMessagesSocket = (config) => {
|
|
|
702
792
|
}
|
|
703
793
|
|
|
704
794
|
const getButtonType = (message) => {
|
|
705
|
-
|
|
706
|
-
|
|
707
|
-
|
|
708
|
-
|
|
709
|
-
|
|
710
|
-
|
|
711
|
-
|
|
712
|
-
|
|
713
|
-
|
|
714
|
-
|
|
715
|
-
|
|
716
|
-
|
|
717
|
-
|
|
718
|
-
|
|
719
|
-
|
|
720
|
-
|
|
721
|
-
|
|
722
|
-
}
|
|
723
|
-
else if (message.interactiveMessage?.nativeFlowMessage?.buttons?.[0]?.name === 'payment_method') {
|
|
724
|
-
return 'payment_method'
|
|
725
|
-
}
|
|
726
|
-
else if (message.interactiveMessage && message.interactiveMessage?.nativeFlowMessage) {
|
|
727
|
-
return 'interactive'
|
|
728
|
-
}
|
|
729
|
-
else if (message.interactiveMessage?.nativeFlowMessage) {
|
|
730
|
-
return 'native_flow'
|
|
731
|
-
}
|
|
795
|
+
if (message.listMessage) {
|
|
796
|
+
return 'list'
|
|
797
|
+
}
|
|
798
|
+
else if (message.buttonsMessage) {
|
|
799
|
+
return 'buttons'
|
|
800
|
+
}
|
|
801
|
+
else if (message.viewOnceMessage?.message?.interactiveMessage) {
|
|
802
|
+
return 'interactive'
|
|
803
|
+
}
|
|
804
|
+
else if (message.viewOnceMessageV2?.message?.interactiveMessage) {
|
|
805
|
+
return 'interactive'
|
|
806
|
+
}
|
|
807
|
+
else if (message.interactiveMessage?.nativeFlowMessage?.buttons?.[0]?.name === 'review_and_pay') {
|
|
808
|
+
return 'review_and_pay'
|
|
809
|
+
}
|
|
810
|
+
else if (message.interactiveMessage?.nativeFlowMessage?.buttons?.[0]?.name === 'review_order') {
|
|
811
|
+
return 'review_order'
|
|
732
812
|
}
|
|
813
|
+
else if (message.interactiveMessage?.nativeFlowMessage?.buttons?.[0]?.name === 'payment_info') {
|
|
814
|
+
return 'payment_info'
|
|
815
|
+
}
|
|
816
|
+
else if (message.interactiveMessage?.nativeFlowMessage?.buttons?.[0]?.name === 'payment_status') {
|
|
817
|
+
return 'payment_status'
|
|
818
|
+
}
|
|
819
|
+
else if (message.interactiveMessage?.nativeFlowMessage?.buttons?.[0]?.name === 'payment_method') {
|
|
820
|
+
return 'payment_method'
|
|
821
|
+
}
|
|
822
|
+
else if (message.interactiveMessage?.nativeFlowMessage) {
|
|
823
|
+
return 'native_flow'
|
|
824
|
+
}
|
|
825
|
+
else if (message.interactiveMessage) {
|
|
826
|
+
return 'interactive'
|
|
827
|
+
}
|
|
828
|
+
}
|
|
733
829
|
const getPrivacyTokens = async (jids) => {
|
|
734
830
|
const t = Utils_1.unixTimestampSeconds().toString();
|
|
735
831
|
const result = await query({
|