@@ -1995,18 +1995,37 @@ export class BaileysStartupService extends ChannelStartupService {
19951995
19961996 const sender = isWA . jid ;
19971997
1998- this . logger . verbose ( 'Sending presence' ) ;
1999- await this . client . presenceSubscribe ( sender ) ;
2000- this . logger . verbose ( 'Subscribing to presence' ) ;
1998+ if ( data ?. options ?. delay && data ?. options ?. delay > 20000 ) {
1999+ let remainingDelay = data ?. options . delay ;
2000+ while ( remainingDelay > 20000 ) {
2001+ await this . client . presenceSubscribe ( sender ) ;
2002+
2003+ await this . client . sendPresenceUpdate ( ( data ?. options ?. presence as WAPresence ) ?? 'composing' , sender ) ;
2004+
2005+ await delay ( 20000 ) ;
2006+
2007+ await this . client . sendPresenceUpdate ( 'paused' , sender ) ;
2008+
2009+ remainingDelay -= 20000 ;
2010+ }
2011+ if ( remainingDelay > 0 ) {
2012+ await this . client . presenceSubscribe ( sender ) ;
20012013
2002- await this . client . sendPresenceUpdate ( data . options ?. presence ?? 'composing' , sender ) ;
2003- this . logger . verbose ( 'Sending presence update: ' + data . options ?. presence ?? 'composing' ) ;
2014+ await this . client . sendPresenceUpdate ( ( data ?. options ?. presence as WAPresence ) ?? 'composing' , sender ) ;
20042015
2005- await delay ( data . options . delay ) ;
2006- this . logger . verbose ( 'Set delay: ' + data . options . delay ) ;
2016+ await delay ( remainingDelay ) ;
20072017
2008- await this . client . sendPresenceUpdate ( 'paused' , sender ) ;
2009- this . logger . verbose ( 'Sending presence update: paused' ) ;
2018+ await this . client . sendPresenceUpdate ( 'paused' , sender ) ;
2019+ }
2020+ } else {
2021+ await this . client . presenceSubscribe ( sender ) ;
2022+
2023+ await this . client . sendPresenceUpdate ( ( data ?. options ?. presence as WAPresence ) ?? 'composing' , sender ) ;
2024+
2025+ await delay ( data ?. options ?. delay ) ;
2026+
2027+ await this . client . sendPresenceUpdate ( 'paused' , sender ) ;
2028+ }
20102029 } catch ( error ) {
20112030 this . logger . error ( error ) ;
20122031 throw new BadRequestException ( error . toString ( ) ) ;
0 commit comments