metamigo-api - fix linter errors in signal service

This commit is contained in:
Abel Luck 2023-03-13 15:06:06 +00:00
parent ab7844827e
commit 594bc23583
2 changed files with 32 additions and 29 deletions

View file

@ -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,
}); });
} }

View file

@ -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;
} }