new(basic.gblib): New batch features.
This commit is contained in:
parent
14b3ff1fe1
commit
ccc8fdd2d7
1 changed files with 69 additions and 71 deletions
|
@ -732,96 +732,94 @@ export class WhatsappDirectLine extends GBService {
|
|||
}
|
||||
|
||||
public async sendToDevice(to: any, msg: string, conversationId) {
|
||||
try{
|
||||
const cmd = '/audio ';
|
||||
let url;
|
||||
let chatId = WhatsappDirectLine.chatIds[conversationId];
|
||||
try {
|
||||
const cmd = '/audio ';
|
||||
let url;
|
||||
let chatId = WhatsappDirectLine.chatIds[conversationId];
|
||||
|
||||
if (typeof msg !== 'object' && msg.startsWith(cmd)) {
|
||||
msg = msg.substr(cmd.length);
|
||||
if (typeof msg !== 'object' && msg.startsWith(cmd)) {
|
||||
msg = msg.substr(cmd.length);
|
||||
|
||||
return await this.sendTextAsAudioToDevice(to, msg, chatId);
|
||||
} else {
|
||||
let options, messages;
|
||||
const botNumber = this.min.core.getParam(this.min.instance, 'Bot Number', null);
|
||||
return await this.sendTextAsAudioToDevice(to, msg, chatId);
|
||||
} else {
|
||||
let options, messages;
|
||||
const botNumber = this.min.core.getParam(this.min.instance, 'Bot Number', null);
|
||||
|
||||
switch (this.provider) {
|
||||
case 'meta':
|
||||
let whatsappServiceNumber, whatsappServiceKey;
|
||||
if (botNumber && this.min.instance.whatsappServiceNumber) {
|
||||
whatsappServiceNumber = this.min.instance.whatsappServiceNumber;
|
||||
whatsappServiceKey = this.min.instance.whatsappServiceKey;
|
||||
} else {
|
||||
whatsappServiceNumber = GBServer.globals.minBoot.instance.whatsappServiceNumber;
|
||||
whatsappServiceKey = GBServer.globals.minBoot.instance.whatsappServiceKey;
|
||||
}
|
||||
switch (this.provider) {
|
||||
case 'meta':
|
||||
let whatsappServiceNumber, whatsappServiceKey;
|
||||
if (botNumber && this.min.instance.whatsappServiceNumber) {
|
||||
whatsappServiceNumber = this.min.instance.whatsappServiceNumber;
|
||||
whatsappServiceKey = this.min.instance.whatsappServiceKey;
|
||||
} else {
|
||||
whatsappServiceNumber = GBServer.globals.minBoot.instance.whatsappServiceNumber;
|
||||
whatsappServiceKey = GBServer.globals.minBoot.instance.whatsappServiceKey;
|
||||
}
|
||||
|
||||
const driver = createBot(whatsappServiceNumber, whatsappServiceKey);
|
||||
const driver = createBot(whatsappServiceNumber, whatsappServiceKey);
|
||||
|
||||
if (msg['name']) {
|
||||
const res = await driver.sendTemplate(to, msg['name'], 'pt_br', msg['components']);
|
||||
} else {
|
||||
messages = msg.match(/(.|[\r\n]){1,4096}/g);
|
||||
if (msg['name']) {
|
||||
const res = await driver.sendTemplate(to, msg['name'], 'pt_br', msg['components']);
|
||||
} else {
|
||||
messages = msg.match(/(.|[\r\n]){1,4096}/g);
|
||||
|
||||
await CollectionUtil.asyncForEach(messages, async msg => {
|
||||
await driver.sendText(to, msg);
|
||||
|
||||
await GBUtil.sleep(3000);
|
||||
});
|
||||
}
|
||||
|
||||
break;
|
||||
case 'official':
|
||||
if (to.charAt(0) !== '+') {
|
||||
to = `+${to}`;
|
||||
}
|
||||
|
||||
messages = msg.match(/(.|[\r\n]){1,1000}/g);
|
||||
|
||||
await CollectionUtil.asyncForEach(messages, async msg => {
|
||||
await driver.sendText(to, msg);
|
||||
|
||||
await GBUtil.sleep(3000);
|
||||
await this.customClient.messages.create({
|
||||
body: msg,
|
||||
from: `whatsapp:${botNumber}`,
|
||||
to: `whatsapp:${to}`
|
||||
// TODO: mediaUrl.
|
||||
});
|
||||
});
|
||||
}
|
||||
|
||||
break;
|
||||
case 'official':
|
||||
if (to.charAt(0) !== '+') {
|
||||
to = `+${to}`;
|
||||
}
|
||||
break;
|
||||
|
||||
messages = msg.match(/(.|[\r\n]){1,1000}/g);
|
||||
|
||||
await CollectionUtil.asyncForEach(messages, async msg => {
|
||||
await GBUtil.sleep(3000);
|
||||
await this.customClient.messages.create({
|
||||
body: msg,
|
||||
from: `whatsapp:${botNumber}`,
|
||||
to: `whatsapp:${to}`
|
||||
// TODO: mediaUrl.
|
||||
});
|
||||
});
|
||||
|
||||
break;
|
||||
|
||||
case 'GeneralBots':
|
||||
to = to.replace('+', '');
|
||||
if (to.indexOf('@') == -1) {
|
||||
if (to.length == 18) {
|
||||
to = to + '@g.us';
|
||||
} else {
|
||||
to = to + '@c.us';
|
||||
case 'GeneralBots':
|
||||
to = to.replace('+', '');
|
||||
if (to.indexOf('@') == -1) {
|
||||
if (to.length == 18) {
|
||||
to = to + '@g.us';
|
||||
} else {
|
||||
to = to + '@c.us';
|
||||
}
|
||||
}
|
||||
if ((await this.customClient.getState()) === WAState.CONNECTED) {
|
||||
await this.customClient.sendMessage(to, msg);
|
||||
} else {
|
||||
GBLogEx.info(this.min, `WhatsApp OFFLINE ${to}: ${msg}`);
|
||||
}
|
||||
}
|
||||
if ((await this.customClient.getState()) === WAState.CONNECTED) {
|
||||
await this.customClient.sendMessage(to, msg);
|
||||
} else {
|
||||
GBLogEx.info(this.min, `WhatsApp OFFLINE ${to}: ${msg}`);
|
||||
}
|
||||
|
||||
break;
|
||||
}
|
||||
break;
|
||||
}
|
||||
|
||||
if (options) {
|
||||
try {
|
||||
GBLogEx.info(this.min, `Message [${msg}] is being sent to ${to}...`);
|
||||
await fetch(url, options);
|
||||
} catch (error) {
|
||||
GBLog.error(`Error sending message to Whatsapp provider ${JSON.stringify(error)}`);
|
||||
if (options) {
|
||||
try {
|
||||
GBLogEx.info(this.min, `Message [${msg}] is being sent to ${to}...`);
|
||||
await fetch(url, options);
|
||||
} catch (error) {
|
||||
GBLog.error(`Error sending message to Whatsapp provider ${JSON.stringify(error)}`);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
try {
|
||||
} catch (error) {
|
||||
GBLog.error(`GBWhatsApp ERR: ${GBUtil.toYAML(error)}`);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
public async sendToDeviceEx(to, text, locale, conversationId) {
|
||||
|
|
Loading…
Add table
Reference in a new issue