mirror of
https://github.com/EvolutionAPI/evolution-api.git
synced 2025-07-14 09:51:24 -06:00
Merge branch 'develop' of github.com:EvolutionAPI/evolution-api into develop
This commit is contained in:
commit
547943a05c
@ -97,6 +97,7 @@ WEBHOOK:
|
|||||||
WEBHOOK_BY_EVENTS: false
|
WEBHOOK_BY_EVENTS: false
|
||||||
# Automatically maps webhook paths
|
# Automatically maps webhook paths
|
||||||
# Set the events you want to hear
|
# Set the events you want to hear
|
||||||
|
WEBHOOK_BASE64: false
|
||||||
EVENTS:
|
EVENTS:
|
||||||
APPLICATION_STARTUP: false
|
APPLICATION_STARTUP: false
|
||||||
QRCODE_UPDATED: true
|
QRCODE_UPDATED: true
|
||||||
|
@ -41,6 +41,7 @@ export class InstanceController {
|
|||||||
instanceName,
|
instanceName,
|
||||||
webhook,
|
webhook,
|
||||||
webhook_by_events,
|
webhook_by_events,
|
||||||
|
webhook_base64,
|
||||||
events,
|
events,
|
||||||
qrcode,
|
qrcode,
|
||||||
number,
|
number,
|
||||||
@ -139,6 +140,7 @@ export class InstanceController {
|
|||||||
url: webhook,
|
url: webhook,
|
||||||
events: newEvents,
|
events: newEvents,
|
||||||
webhook_by_events,
|
webhook_by_events,
|
||||||
|
webhook_base64,
|
||||||
});
|
});
|
||||||
|
|
||||||
webhookEvents = (await this.webhookService.find(instance)).events;
|
webhookEvents = (await this.webhookService.find(instance)).events;
|
||||||
@ -297,6 +299,7 @@ export class InstanceController {
|
|||||||
webhook: {
|
webhook: {
|
||||||
webhook,
|
webhook,
|
||||||
webhook_by_events,
|
webhook_by_events,
|
||||||
|
webhook_base64,
|
||||||
events: webhookEvents,
|
events: webhookEvents,
|
||||||
},
|
},
|
||||||
websocket: {
|
websocket: {
|
||||||
@ -390,6 +393,7 @@ export class InstanceController {
|
|||||||
webhook: {
|
webhook: {
|
||||||
webhook,
|
webhook,
|
||||||
webhook_by_events,
|
webhook_by_events,
|
||||||
|
webhook_base64,
|
||||||
events: webhookEvents,
|
events: webhookEvents,
|
||||||
},
|
},
|
||||||
websocket: {
|
websocket: {
|
||||||
|
@ -5,6 +5,7 @@ export class InstanceDto {
|
|||||||
token?: string;
|
token?: string;
|
||||||
webhook?: string;
|
webhook?: string;
|
||||||
webhook_by_events?: boolean;
|
webhook_by_events?: boolean;
|
||||||
|
webhook_base64?: boolean;
|
||||||
events?: string[];
|
events?: string[];
|
||||||
reject_call?: boolean;
|
reject_call?: boolean;
|
||||||
msg_call?: string;
|
msg_call?: string;
|
||||||
|
@ -8,6 +8,7 @@ export class WebhookRaw {
|
|||||||
enabled?: boolean;
|
enabled?: boolean;
|
||||||
events?: string[];
|
events?: string[];
|
||||||
webhook_by_events?: boolean;
|
webhook_by_events?: boolean;
|
||||||
|
webhook_base64?: boolean;
|
||||||
}
|
}
|
||||||
|
|
||||||
const webhookSchema = new Schema<WebhookRaw>({
|
const webhookSchema = new Schema<WebhookRaw>({
|
||||||
@ -16,6 +17,7 @@ const webhookSchema = new Schema<WebhookRaw>({
|
|||||||
enabled: { type: Boolean, required: true },
|
enabled: { type: Boolean, required: true },
|
||||||
events: { type: [String], required: true },
|
events: { type: [String], required: true },
|
||||||
webhook_by_events: { type: Boolean, required: true },
|
webhook_by_events: { type: Boolean, required: true },
|
||||||
|
webhook_base64: { type: Boolean, required: true },
|
||||||
});
|
});
|
||||||
|
|
||||||
export const WebhookModel = dbserver?.model(WebhookRaw.name, webhookSchema, 'webhook');
|
export const WebhookModel = dbserver?.model(WebhookRaw.name, webhookSchema, 'webhook');
|
||||||
|
@ -26,7 +26,7 @@ export class WebhookService {
|
|||||||
|
|
||||||
return result;
|
return result;
|
||||||
} catch (error) {
|
} catch (error) {
|
||||||
return { enabled: false, url: '', events: [], webhook_by_events: false };
|
return { enabled: false, url: '', events: [], webhook_by_events: false, webhook_base64 : false };
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -276,6 +276,10 @@ export class WAStartupService {
|
|||||||
this.localWebhook.webhook_by_events = data?.webhook_by_events;
|
this.localWebhook.webhook_by_events = data?.webhook_by_events;
|
||||||
this.logger.verbose(`Webhook by events: ${this.localWebhook.webhook_by_events}`);
|
this.logger.verbose(`Webhook by events: ${this.localWebhook.webhook_by_events}`);
|
||||||
|
|
||||||
|
this.localWebhook.webhook_base64 = data?.webhook_base64;
|
||||||
|
this.logger.verbose(`Webhook by webhook_base64: ${this.localWebhook.webhook_base64}`);
|
||||||
|
|
||||||
|
|
||||||
this.logger.verbose('Webhook loaded');
|
this.logger.verbose('Webhook loaded');
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1528,15 +1532,42 @@ export class WAStartupService {
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
const messageRaw: MessageRaw = {
|
let messageRaw: MessageRaw;
|
||||||
key: received.key,
|
const globalWebhook = this.configService.get<Webhook>('WEBHOOK').GLOBAL;
|
||||||
pushName: received.pushName,
|
if (this.localWebhook.webhook_base64 === true && received?.message.documentMessage || received?.message.imageMessage ) {
|
||||||
message: { ...received.message },
|
const buffer = await downloadMediaMessage(
|
||||||
messageType: getContentType(received.message),
|
{ key: received.key, message: received?.message },
|
||||||
messageTimestamp: received.messageTimestamp as number,
|
'buffer',
|
||||||
owner: this.instance.name,
|
{},
|
||||||
source: getDevice(received.key.id),
|
{
|
||||||
};
|
logger: P({ level: 'error' }),
|
||||||
|
reuploadRequest: this.client.updateMediaMessage,
|
||||||
|
},
|
||||||
|
);
|
||||||
|
console.log(buffer);
|
||||||
|
messageRaw = {
|
||||||
|
key: received.key,
|
||||||
|
pushName: received.pushName,
|
||||||
|
message: {
|
||||||
|
...received.message,
|
||||||
|
base64: buffer ? buffer.toString('base64') : undefined,
|
||||||
|
},
|
||||||
|
messageType: getContentType(received.message),
|
||||||
|
messageTimestamp: received.messageTimestamp as number,
|
||||||
|
owner: this.instance.name,
|
||||||
|
source: getDevice(received.key.id),
|
||||||
|
};
|
||||||
|
} else {
|
||||||
|
messageRaw = {
|
||||||
|
key: received.key,
|
||||||
|
pushName: received.pushName,
|
||||||
|
message: { ...received.message },
|
||||||
|
messageType: getContentType(received.message),
|
||||||
|
messageTimestamp: received.messageTimestamp as number,
|
||||||
|
owner: this.instance.name,
|
||||||
|
source: getDevice(received.key.id),
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
if (this.localSettings.read_messages && received.key.id !== 'status@broadcast') {
|
if (this.localSettings.read_messages && received.key.id !== 'status@broadcast') {
|
||||||
await this.client.readMessages([received.key]);
|
await this.client.readMessages([received.key]);
|
||||||
|
@ -50,6 +50,7 @@ export declare namespace wa {
|
|||||||
url?: string;
|
url?: string;
|
||||||
events?: string[];
|
events?: string[];
|
||||||
webhook_by_events?: boolean;
|
webhook_by_events?: boolean;
|
||||||
|
webhook_base64?: boolean;
|
||||||
};
|
};
|
||||||
|
|
||||||
export type LocalChatwoot = {
|
export type LocalChatwoot = {
|
||||||
|
Loading…
Reference in New Issue
Block a user