From b8fa43296d026b3edf77ea4f42d82df9d9a239c8 Mon Sep 17 00:00:00 2001 From: Davidson Gomes Date: Mon, 19 Jun 2023 22:28:39 -0300 Subject: [PATCH] conversion of audios for sending recorded audio, now it is possible to send mp3 audios and not just ogg --- .DS_Store | Bin 0 -> 6148 bytes .gitignore | 2 ++ src/config/env.config.ts | 10 +++++----- src/db/db.connect.ts | 2 +- src/db/redis.client.ts | 7 +++++++ src/whatsapp/controllers/instance.controller.ts | 4 ++-- src/whatsapp/guards/instance.guard.ts | 15 +++++++++++++-- src/whatsapp/services/whatsapp.service.ts | 13 ++++++------- temp/audio.opus | Bin 47518 -> 0 bytes 9 files changed, 36 insertions(+), 17 deletions(-) create mode 100644 .DS_Store delete mode 100644 temp/audio.opus diff --git a/.DS_Store b/.DS_Store new file mode 100644 index 0000000000000000000000000000000000000000..11ffa2bd7bc24f00311a501886899f63ac042d9d GIT binary patch literal 6148 zcmeHLJ5Iwu5SX>K~7LW#IY3uwJGR011(&Ejt0?i2(Ex~ z0p9EmiI*gFL4anY-Dl5dXZP9O&4h?d^Rm+*suNKajj^(dZicX(+muv9Qv(_vqt|V; z+F6=Ud8*>KGQiI+pbnkU1r5FDw{pK-wxwAdC%r6zuA0#P=w|2nz_)k4wdbd$cVpuX zp|ngfWz?o~I-!A=o7UdH+ROQ0YcIE(TQ;@eXqs z+sgU(b|0>fKG!d?<=nIEe%>bxJsJC|HR$)Ueiu4?M=HvIGN24BoB`Qus_P5SqzRM( zW#F$d!23gp#uy0}4(--~&Xxec0BS3^=30VdLcvI|a0m;;xKN-AHBw?27Y=qr*spLn4#9;zis8#gG5>dD1^SRLfRSL~5E_X75U@08rwsfk10U2n BW?}#U literal 0 HcmV?d00001 diff --git a/.gitignore b/.gitignore index 7465bfe4..71249da3 100644 --- a/.gitignore +++ b/.gitignore @@ -33,3 +33,5 @@ lerna-debug.log* !/instances/.gitkeep /test/ /src/env.yml + +/temp diff --git a/src/config/env.config.ts b/src/config/env.config.ts index 4ad28089..c54d6012 100644 --- a/src/config/env.config.ts +++ b/src/config/env.config.ts @@ -2,6 +2,7 @@ import { readFileSync } from 'fs'; import { load } from 'js-yaml'; import { join } from 'path'; import { SRC_DIR } from './path.config'; +import { isBooleanString } from 'class-validator'; export type HttpServer = { TYPE: 'http' | 'https'; PORT: number }; @@ -135,7 +136,7 @@ export class ConfigService { this.env.PRODUCTION = process.env?.NODE_ENV === 'PROD'; if (process.env?.DOCKER_ENV === 'true') { this.env.SERVER.TYPE = 'http'; - this.env.SERVER.PORT = Number.parseInt(process.env?.SERVER_PORT ?? '8080'); + this.env.SERVER.PORT = 8080; } } @@ -190,10 +191,9 @@ export class ConfigService { LEVEL: process.env?.LOG_LEVEL.split(',') as LogLevel[], COLOR: process.env?.LOG_COLOR === 'true', }, - DEL_INSTANCE: - typeof process.env?.DEL_INSTANCE === 'boolean' - ? process.env.DEL_INSTANCE === 'true' - : Number.parseInt(process.env.DEL_INSTANCE), + DEL_INSTANCE: isBooleanString(process.env?.DEL_INSTANCE) + ? process.env.DEL_INSTANCE === 'true' + : Number.parseInt(process.env.DEL_INSTANCE), WEBHOOK: { GLOBAL: { URL: process.env?.WEBHOOK_GLOBAL_URL, diff --git a/src/db/db.connect.ts b/src/db/db.connect.ts index fd4149f5..ed51f377 100644 --- a/src/db/db.connect.ts +++ b/src/db/db.connect.ts @@ -4,7 +4,7 @@ import { Logger } from '../config/logger.config'; const logger = new Logger('Db Connection'); -export const db = configService.get('DATABASE'); +const db = configService.get('DATABASE'); export const dbserver = db.ENABLED ? mongoose.createConnection(db.CONNECTION.URI, { dbName: db.CONNECTION.DB_PREFIX_NAME + '-whatsapp-api', diff --git a/src/db/redis.client.ts b/src/db/redis.client.ts index a73953a1..892ee825 100644 --- a/src/db/redis.client.ts +++ b/src/db/redis.client.ts @@ -25,6 +25,13 @@ export class RedisCache { } } + public async keyExists(key?: string) { + if (key) { + return !!(await this.instanceKeys()).find((i) => i === key); + } + return !!(await this.instanceKeys()).find((i) => i === this.instanceName); + } + public async writeData(field: string, data: any) { try { const json = JSON.stringify(data, BufferJSON.replacer); diff --git a/src/whatsapp/controllers/instance.controller.ts b/src/whatsapp/controllers/instance.controller.ts index b9d9bfe3..b2d5ed2c 100644 --- a/src/whatsapp/controllers/instance.controller.ts +++ b/src/whatsapp/controllers/instance.controller.ts @@ -118,7 +118,7 @@ export class InstanceController { public async connectToWhatsapp({ instanceName }: InstanceDto) { try { const instance = this.waMonitor.waInstances[instanceName]; - const state = instance?.connectionStatus?.state ?? null; + const state = instance?.connectionStatus?.state; switch (state) { case 'close': @@ -131,7 +131,7 @@ export class InstanceController { return await this.connectionState({ instanceName }); } } catch (error) { - this.logger.log(error); + this.logger.error(error); } } diff --git a/src/whatsapp/guards/instance.guard.ts b/src/whatsapp/guards/instance.guard.ts index db48e9d4..b9a1dfce 100644 --- a/src/whatsapp/guards/instance.guard.ts +++ b/src/whatsapp/guards/instance.guard.ts @@ -2,7 +2,7 @@ import { NextFunction, Request, Response } from 'express'; import { existsSync } from 'fs'; import { join } from 'path'; import { INSTANCE_DIR } from '../../config/path.config'; -import { db, dbserver } from '../../db/db.connect'; +import { dbserver } from '../../db/db.connect'; import { BadRequestException, ForbiddenException, @@ -10,9 +10,20 @@ import { } from '../../exceptions'; import { InstanceDto } from '../dto/instance.dto'; import { waMonitor } from '../whatsapp.module'; +import { Database, Redis, configService } from '../../config/env.config'; +import { RedisCache } from '../../db/redis.client'; async function getInstance(instanceName: string) { - const exists = waMonitor.waInstances[instanceName]; + const db = configService.get('DATABASE'); + const redisConf = configService.get('REDIS'); + + const exists = !!waMonitor.waInstances[instanceName]; + + if (redisConf.ENABLED) { + const cache = new RedisCache(redisConf, instanceName); + const keyExists = await cache.keyExists(); + return exists || keyExists; + } if (db.ENABLED) { const collection = dbserver diff --git a/src/whatsapp/services/whatsapp.service.ts b/src/whatsapp/services/whatsapp.service.ts index 4c900a43..1d3d2881 100644 --- a/src/whatsapp/services/whatsapp.service.ts +++ b/src/whatsapp/services/whatsapp.service.ts @@ -1146,8 +1146,8 @@ export class WAStartupService { let outputAudio: string; if (isURL(audio)) { - outputAudio = `${join(process.cwd(), 'temp', 'audio.opus')}`; - tempAudioPath = `${join(process.cwd(), 'temp', 'audio.mp3')}`; + outputAudio = `${join(process.cwd(), 'temp', 'audio.mp4')}`; + tempAudioPath = `${join(process.cwd(), 'temp', 'audioTemp.mp3')}`; const response = await axios.get(audio, { responseType: 'arraybuffer' }); fs.writeFileSync(tempAudioPath, response.data); @@ -1161,7 +1161,8 @@ export class WAStartupService { return new Promise((resolve, reject) => { exec( - `${ffmpegPath.path} -i ${tempAudioPath} -c:a libopus ${outputAudio} -y`, + // `${ffmpegPath.path} -i ${tempAudioPath} -c:a libopus ${outputAudio} -y`, + `${ffmpegPath.path} -i ${tempAudioPath} -vn -ab 128k -ar 44100 -f ipod ${outputAudio} -y`, (error, _stdout, _stderr) => { fs.unlinkSync(tempAudioPath); if (error) reject(error); @@ -1179,11 +1180,9 @@ export class WAStartupService { data.number, { audio: Buffer.from(audio, 'base64'), - // audio: isURL(data.audioMessage.audio) - // ? { url: data.audioMessage.audio } - // : Buffer.from(data.audioMessage.audio, 'base64'), ptt: true, - mimetype: 'audio/ogg; codecs=opus', + // mimetype: 'audio/ogg; codecs=opus', + mimetype: 'audio/mp4', }, { presence: 'recording', delay: data?.options?.delay }, ); diff --git a/temp/audio.opus b/temp/audio.opus deleted file mode 100644 index 393773a140747d829ee05c0451797e64187e1ab8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 47518 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 Ek$Vw?qW}N^