metamigo-api - fix linter errors in signal service
This commit is contained in:
parent
ab7844827e
commit
594bc23583
2 changed files with 32 additions and 29 deletions
|
|
@ -3,6 +3,7 @@ import { Service } from "@hapipal/schmervice";
|
||||||
import { promises as fs } from "fs";
|
import { promises as fs } from "fs";
|
||||||
import {
|
import {
|
||||||
SignaldAPI,
|
SignaldAPI,
|
||||||
|
SendResponsev1,
|
||||||
IncomingMessagev1,
|
IncomingMessagev1,
|
||||||
ClientMessageWrapperv1,
|
ClientMessageWrapperv1,
|
||||||
} from "@digiresilience/node-signald";
|
} from "@digiresilience/node-signald";
|
||||||
|
|
@ -118,17 +119,21 @@ export default class SignaldService extends Service {
|
||||||
return db.signalBots.findBy({ token });
|
return db.signalBots.findBy({ token });
|
||||||
}
|
}
|
||||||
|
|
||||||
async register(bot: Bot, code: string): Promise<any> {
|
async register(bot: Bot, code: string): Promise<void> {
|
||||||
const address = await this.signald.verify(bot.phoneNumber, code);
|
const address = await this.signald.verify(bot.phoneNumber, code);
|
||||||
this.server.db().signalBots.updateAuthInfo(bot, address.address.uuid);
|
this.server.db().signalBots.updateAuthInfo(bot, address.address.uuid);
|
||||||
}
|
}
|
||||||
|
|
||||||
async send(bot: Bot, phoneNumber: string, message: string): Promise<any> {
|
async send(
|
||||||
|
bot: Bot,
|
||||||
|
phoneNumber: string,
|
||||||
|
message: string
|
||||||
|
): Promise<SendResponsev1> {
|
||||||
this.server.logger.debug(
|
this.server.logger.debug(
|
||||||
{ us: bot.phoneNumber, then: phoneNumber, message },
|
{ us: bot.phoneNumber, them: phoneNumber, message },
|
||||||
"signald send"
|
"signald send"
|
||||||
);
|
);
|
||||||
return await this.signald.send(
|
return this.signald.send(
|
||||||
bot.phoneNumber,
|
bot.phoneNumber,
|
||||||
{ number: phoneNumber },
|
{ number: phoneNumber },
|
||||||
undefined,
|
undefined,
|
||||||
|
|
@ -136,8 +141,8 @@ export default class SignaldService extends Service {
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
async resetSession(bot: Bot, phoneNumber: string): Promise<any> {
|
async resetSession(bot: Bot, phoneNumber: string): Promise<SendResponsev1> {
|
||||||
return await this.signald.resetSession(bot.phoneNumber, {
|
return this.signald.resetSession(bot.phoneNumber, {
|
||||||
number: phoneNumber,
|
number: phoneNumber,
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -136,14 +136,13 @@ export default class WhatsappService extends Service {
|
||||||
}
|
}
|
||||||
|
|
||||||
private async queueMessage(bot: Bot, webMessageInfo: proto.WebMessageInfo) {
|
private async queueMessage(bot: Bot, webMessageInfo: proto.WebMessageInfo) {
|
||||||
const { key: { id, fromMe }, message, messageTimestamp } = webMessageInfo;
|
const { key: { id, fromMe, remoteJid }, message, messageTimestamp } = webMessageInfo;
|
||||||
|
if (!fromMe && message && remoteJid !== "status@broadcast") {
|
||||||
if (!fromMe && message) {
|
const { audioMessage, documentMessage, imageMessage, videoMessage } = message;
|
||||||
const isMediaMessage =
|
const isMediaMessage = audioMessage ||
|
||||||
message.audioMessage ||
|
documentMessage ||
|
||||||
message.documentMessage ||
|
imageMessage ||
|
||||||
message.imageMessage ||
|
videoMessage;
|
||||||
message.videoMessage;
|
|
||||||
|
|
||||||
const messageContent = Object.values(message)[0]
|
const messageContent = Object.values(message)[0]
|
||||||
let messageType: MediaType;
|
let messageType: MediaType;
|
||||||
|
|
@ -151,25 +150,25 @@ export default class WhatsappService extends Service {
|
||||||
let filename: string;
|
let filename: string;
|
||||||
let mimetype: string;
|
let mimetype: string;
|
||||||
if (isMediaMessage) {
|
if (isMediaMessage) {
|
||||||
if (message.audioMessage) {
|
if (audioMessage) {
|
||||||
messageType = "audio";
|
messageType = "audio";
|
||||||
filename =
|
filename =
|
||||||
id + "." + message.audioMessage.mimetype.split("/").pop();
|
id + "." + audioMessage.mimetype.split("/").pop();
|
||||||
mimetype = message.audioMessage.mimetype;
|
mimetype = audioMessage.mimetype;
|
||||||
} else if (message.documentMessage) {
|
} else if (documentMessage) {
|
||||||
messageType = "document";
|
messageType = "document";
|
||||||
filename = message.documentMessage.fileName;
|
filename = documentMessage.fileName;
|
||||||
mimetype = message.documentMessage.mimetype;
|
mimetype = documentMessage.mimetype;
|
||||||
} else if (message.imageMessage) {
|
} else if (imageMessage) {
|
||||||
messageType = "image";
|
messageType = "image";
|
||||||
filename =
|
filename =
|
||||||
id + "." + message.imageMessage.mimetype.split("/").pop();
|
id + "." + imageMessage.mimetype.split("/").pop();
|
||||||
mimetype = message.imageMessage.mimetype;
|
mimetype = imageMessage.mimetype;
|
||||||
} else if (message.videoMessage) {
|
} else if (videoMessage) {
|
||||||
messageType = "video"
|
messageType = "video"
|
||||||
filename =
|
filename =
|
||||||
id + "." + message.videoMessage.mimetype.split("/").pop();
|
id + "." + videoMessage.mimetype.split("/").pop();
|
||||||
mimetype = message.videoMessage.mimetype;
|
mimetype = videoMessage.mimetype;
|
||||||
}
|
}
|
||||||
|
|
||||||
const stream = await downloadContentFromMessage(messageContent, messageType)
|
const stream = await downloadContentFromMessage(messageContent, messageType)
|
||||||
|
|
@ -199,7 +198,7 @@ export default class WhatsappService extends Service {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private async queueUnreadMessages(bot: Bot, messages: any[]) {
|
private async queueUnreadMessages(bot: Bot, messages: proto.IWebMessageInfo[]) {
|
||||||
for await (const message of messages) {
|
for await (const message of messages) {
|
||||||
await this.queueMessage(bot, message);
|
await this.queueMessage(bot, message);
|
||||||
}
|
}
|
||||||
|
|
@ -266,9 +265,8 @@ export default class WhatsappService extends Service {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
async receive(bot: Bot, lastReceivedDate: Date): Promise<any> {
|
async receive(bot: Bot, _lastReceivedDate: Date): Promise<proto.IWebMessageInfo[]> {
|
||||||
const connection = this.connections[bot.id]?.socket;
|
const connection = this.connections[bot.id]?.socket;
|
||||||
|
|
||||||
const messages = await connection.loadAllUnreadMessages();
|
const messages = await connection.loadAllUnreadMessages();
|
||||||
return messages;
|
return messages;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue