@@ -362,6 +362,15 @@ export class WAStartupService {
362362 this . localSettings . groups_ignore = data ?. groups_ignore ;
363363 this . logger . verbose ( `Settings groups_ignore: ${ this . localSettings . groups_ignore } ` ) ;
364364
365+ this . localSettings . always_online = data ?. always_online ;
366+ this . logger . verbose ( `Settings always_online: ${ this . localSettings . always_online } ` ) ;
367+
368+ this . localSettings . read_messages = data ?. read_messages ;
369+ this . logger . verbose ( `Settings read_messages: ${ this . localSettings . read_messages } ` ) ;
370+
371+ this . localSettings . read_status = data ?. read_status ;
372+ this . logger . verbose ( `Settings read_status: ${ this . localSettings . read_status } ` ) ;
373+
365374 this . logger . verbose ( 'Settings loaded' ) ;
366375 }
367376
@@ -371,8 +380,13 @@ export class WAStartupService {
371380 this . logger . verbose ( `Settings reject_call: ${ data . reject_call } ` ) ;
372381 this . logger . verbose ( `Settings msg_call: ${ data . msg_call } ` ) ;
373382 this . logger . verbose ( `Settings groups_ignore: ${ data . groups_ignore } ` ) ;
383+ this . logger . verbose ( `Settings always_online: ${ data . always_online } ` ) ;
384+ this . logger . verbose ( `Settings read_messages: ${ data . read_messages } ` ) ;
385+ this . logger . verbose ( `Settings read_status: ${ data . read_status } ` ) ;
374386 Object . assign ( this . localSettings , data ) ;
375387 this . logger . verbose ( 'Settings set' ) ;
388+
389+ this . client ?. ws ?. close ( ) ;
376390 }
377391
378392 public async findSettings ( ) {
@@ -387,6 +401,9 @@ export class WAStartupService {
387401 this . logger . verbose ( `Settings url: ${ data . reject_call } ` ) ;
388402 this . logger . verbose ( `Settings msg_call: ${ data . msg_call } ` ) ;
389403 this . logger . verbose ( `Settings groups_ignore: ${ data . groups_ignore } ` ) ;
404+ this . logger . verbose ( `Settings always_online: ${ data . always_online } ` ) ;
405+ this . logger . verbose ( `Settings read_messages: ${ data . read_messages } ` ) ;
406+ this . logger . verbose ( `Settings read_status: ${ data . read_status } ` ) ;
390407 return data ;
391408 }
392409
@@ -847,6 +864,7 @@ export class WAStartupService {
847864 printQRInTerminal : false ,
848865 browser,
849866 version,
867+ markOnlineOnConnect : this . localSettings . always_online ,
850868 connectTimeoutMs : 60_000 ,
851869 qrTimeout : 40_000 ,
852870 defaultQueryTimeoutMs : undefined ,
@@ -1143,6 +1161,14 @@ export class WAStartupService {
11431161 source : getDevice ( received . key . id ) ,
11441162 } ;
11451163
1164+ if ( this . localSettings . read_messages && received . key . id !== 'status@broadcast' ) {
1165+ await this . client . readMessages ( [ received . key ] ) ;
1166+ }
1167+
1168+ if ( this . localSettings . read_status && received . key . id === 'status@broadcast' ) {
1169+ await this . client . readMessages ( [ received . key ] ) ;
1170+ }
1171+
11461172 this . logger . log ( messageRaw ) ;
11471173
11481174 this . logger . verbose ( 'Sending data to webhook in event MESSAGES_UPSERT' ) ;
@@ -2400,7 +2426,7 @@ export class WAStartupService {
24002426 this . logger . verbose ( 'Marking message as read' ) ;
24012427 try {
24022428 const keys : proto . IMessageKey [ ] = [ ] ;
2403- data . readMessages . forEach ( ( read ) => {
2429+ data . read_messages . forEach ( ( read ) => {
24042430 if ( isJidGroup ( read . remoteJid ) || isJidUser ( read . remoteJid ) ) {
24052431 keys . push ( {
24062432 remoteJid : read . remoteJid ,
@@ -2640,7 +2666,6 @@ export class WAStartupService {
26402666 await this . client . updateGroupsAddPrivacy ( settings . privacySettings . groupadd ) ;
26412667 this . logger . verbose ( 'Groups add privacy updated' ) ;
26422668
2643- // reinicia a instancia
26442669 this . client ?. ws ?. close ( ) ;
26452670
26462671 return {
0 commit comments