Skip to content

Commit 63c7997

Browse files
committed
fix: support newsletter send targets
1 parent dfe56cc commit 63c7997

4 files changed

Lines changed: 27 additions & 3 deletions

File tree

.gitignore

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -35,6 +35,9 @@ lerna-debug.log*
3535
/instances/*
3636
!/instances/.gitkeep
3737
/test/
38+
!/test/
39+
/test/*
40+
!/test/createJid.test.ts
3841
/src/env.yml
3942
/store
4043
*.env

src/api/integrations/channel/whatsapp/whatsapp.baileys.service.ts

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2342,7 +2342,7 @@ export class BaileysStartupService extends ChannelStartupService {
23422342
this.logger.verbose(`Sending message to ${sender}`);
23432343

23442344
try {
2345-
if (options?.delay) {
2345+
if (options?.delay && !isJidNewsletter(sender)) {
23462346
this.logger.verbose(`Typing for ${options.delay}ms to ${sender}`);
23472347
if (options.delay > 20000) {
23482348
let remainingDelay = options.delay;
@@ -3577,8 +3577,9 @@ export class BaileysStartupService extends ChannelStartupService {
35773577
const jids: {
35783578
groups: { number: string; jid: string }[];
35793579
broadcast: { number: string; jid: string }[];
3580+
newsletters: { number: string; jid: string }[];
35803581
users: { number: string; jid: string; name?: string }[];
3581-
} = { groups: [], broadcast: [], users: [] };
3582+
} = { groups: [], broadcast: [], newsletters: [], users: [] };
35823583

35833584
data.numbers.forEach((number) => {
35843585
const jid = createJid(number);
@@ -3587,6 +3588,8 @@ export class BaileysStartupService extends ChannelStartupService {
35873588
jids.groups.push({ number, jid });
35883589
} else if (jid === 'status@broadcast') {
35893590
jids.broadcast.push({ number, jid });
3591+
} else if (isJidNewsletter(jid)) {
3592+
jids.newsletters.push({ number, jid });
35903593
} else {
35913594
jids.users.push({ number, jid });
35923595
}
@@ -3597,6 +3600,9 @@ export class BaileysStartupService extends ChannelStartupService {
35973600
// BROADCAST
35983601
onWhatsapp.push(...jids.broadcast.map(({ jid, number }) => new OnWhatsAppDto(jid, false, number)));
35993602

3603+
// NEWSLETTERS
3604+
onWhatsapp.push(...jids.newsletters.map(({ jid, number }) => new OnWhatsAppDto(jid, true, number)));
3605+
36003606
// GROUPS
36013607
const groups = await Promise.all(
36023608
jids.groups.map(async ({ jid, number }) => {

src/utils/createJid.ts

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,12 @@ function formatBRNumber(jid: string) {
3535
export function createJid(number: string): string {
3636
number = number.replace(/:\d+/, '');
3737

38-
if (number.includes('@g.us') || number.includes('@s.whatsapp.net') || number.includes('@lid')) {
38+
if (
39+
number.includes('@g.us') ||
40+
number.includes('@s.whatsapp.net') ||
41+
number.includes('@lid') ||
42+
number.includes('@newsletter')
43+
) {
3944
return number;
4045
}
4146

test/createJid.test.ts

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
import assert from 'node:assert/strict';
2+
3+
import { createJid } from '../src/utils/createJid';
4+
5+
const newsletterJid = '120363410820597640@newsletter';
6+
7+
assert.equal(createJid(newsletterJid), newsletterJid);
8+
assert.equal(createJid('120363425112220321@g.us'), '120363425112220321@g.us');
9+
10+
console.log('createJid newsletter support ok');

0 commit comments

Comments
 (0)