@@ -276,6 +276,10 @@ export class WAStartupService {
276
276
this . localWebhook . webhook_by_events = data ?. webhook_by_events ;
277
277
this . logger . verbose ( `Webhook by events: ${ this . localWebhook . webhook_by_events } ` ) ;
278
278
279
+ this . localWebhook . webhook_base64 = data ?. webhook_base64 ;
280
+ this . logger . verbose ( `Webhook by webhook_base64: ${ this . localWebhook . webhook_base64 } ` ) ;
281
+
282
+
279
283
this . logger . verbose ( 'Webhook loaded' ) ;
280
284
}
281
285
@@ -1528,15 +1532,42 @@ export class WAStartupService {
1528
1532
return ;
1529
1533
}
1530
1534
1531
- const messageRaw : MessageRaw = {
1532
- key : received . key ,
1533
- pushName : received . pushName ,
1534
- message : { ...received . message } ,
1535
- messageType : getContentType ( received . message ) ,
1536
- messageTimestamp : received . messageTimestamp as number ,
1537
- owner : this . instance . name ,
1538
- source : getDevice ( received . key . id ) ,
1539
- } ;
1535
+ let messageRaw : MessageRaw ;
1536
+ const globalWebhook = this . configService . get < Webhook > ( 'WEBHOOK' ) . GLOBAL ;
1537
+ if ( this . localWebhook . webhook_base64 === true && received ?. message . documentMessage || received ?. message . imageMessage ) {
1538
+ const buffer = await downloadMediaMessage (
1539
+ { key : received . key , message : received ?. message } ,
1540
+ 'buffer' ,
1541
+ { } ,
1542
+ {
1543
+ logger : P ( { level : 'error' } ) ,
1544
+ reuploadRequest : this . client . updateMediaMessage ,
1545
+ } ,
1546
+ ) ;
1547
+ console . log ( buffer ) ;
1548
+ messageRaw = {
1549
+ key : received . key ,
1550
+ pushName : received . pushName ,
1551
+ message : {
1552
+ ...received . message ,
1553
+ base64 : buffer ? buffer . toString ( 'base64' ) : undefined ,
1554
+ } ,
1555
+ messageType : getContentType ( received . message ) ,
1556
+ messageTimestamp : received . messageTimestamp as number ,
1557
+ owner : this . instance . name ,
1558
+ source : getDevice ( received . key . id ) ,
1559
+ } ;
1560
+ } else {
1561
+ messageRaw = {
1562
+ key : received . key ,
1563
+ pushName : received . pushName ,
1564
+ message : { ...received . message } ,
1565
+ messageType : getContentType ( received . message ) ,
1566
+ messageTimestamp : received . messageTimestamp as number ,
1567
+ owner : this . instance . name ,
1568
+ source : getDevice ( received . key . id ) ,
1569
+ } ;
1570
+ }
1540
1571
1541
1572
if ( this . localSettings . read_messages && received . key . id !== 'status@broadcast' ) {
1542
1573
await this . client . readMessages ( [ received . key ] ) ;
0 commit comments