Skip to content

Commit bf88fdb

Browse files
committed
fix: adjust send presence
1 parent 4c3fb5e commit bf88fdb

File tree

1 file changed

+28
-9
lines changed

1 file changed

+28
-9
lines changed

src/api/services/channels/whatsapp.baileys.service.ts

Lines changed: 28 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -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

Comments
 (0)