Skip to content

Instantly share code, notes, and snippets.

@olaronymax
Created December 13, 2023 17:06
Show Gist options
  • Save olaronymax/302b7d6ab21f3c85f9e68febec29020d to your computer and use it in GitHub Desktop.
Save olaronymax/302b7d6ab21f3c85f9e68febec29020d to your computer and use it in GitHub Desktop.
switch (messageType) {
case "audioMessage":
switch (plano) {
case "gold":
if (await excedeuLimiteDiario(remoteJid, plano, userId)) {
res.status(403).send("Você excedeu o limite diário de mensagens.");
return;
}
await processarAudio(mensagem, remoteJid);
break;
case "diamante":
await processarAudio(mensagem, remoteJid, userId);
break;
default:
if (await excedeuLimiteDiario(remoteJid, plano)) {
res.status(403).send("Você excedeu o limite diário de mensagens.");
return;
}
await processarAudio(mensagem, remoteJid, userId);
break;
}
break;
case "videoMessage":
switch (plano) {
case "gold":
if (await excedeuLimiteDiario(remoteJid, plano)) {
res.status(403).send("Você excedeu o limite diário de mensagens.");
return;
}
await processarVideo(mensagem, remoteJid, userId);
break;
case "diamante":
await processarVideo(mensagem, remoteJid, userId);
break;
default:
if (await excedeuLimiteDiario(remoteJid, plano)) {
res.status(403).send("Você excedeu o limite diário de mensagens.");
return;
}
await processarVideo(mensagem, remoteJid, userId);
break;
}
break;
case "imageMessage":
switch (plano) {
case "gold":
if (await excedeuLimiteDiario(remoteJid, plano)) {
res.status(403).send("Você excedeu o limite diário de mensagens.");
return;
}
await processarImagem(mensagem, remoteJid, userId);
break;
case "diamante":
await processarImagem(mensagem, remoteJid, userId);
break;
default:
if (await excedeuLimiteDiario(remoteJid, plano)) {
res.status(403).send("Você excedeu o limite diário de mensagens.");
return;
}
await processarImagem(mensagem, remoteJid, userId);
break;
}
break;
case "reactionMessage":
switch (plano) {
case "gold":
// Lógica para usuários gold
break;
case "diamante":
// Lógica para usuários diamante
break;
default:
// Lógica padrão para o plano "free"
break;
}
await enviarReacao(remoteJid, mensagem.data.key.id, "❤");
break;
case "conversation":
case "extendedTextMessage":
const textoMensagem = getMessageText(mensagem.data.message);
if (contemLinkDoYouTube(textoMensagem)) {
const videoId = extrairVideoIdDoYouTube(textoMensagem);
if (videoId) {
const messageId = mensagem.data.key.id;
console.log(`Processando mensagem de vídeo com ID ${messageId}`);
try {
// Baixe e processe o vídeo usando o ID do vídeo
const videoUrl = await baixarVideoDoYouTube(
videoId,
remoteJid,
messageId
);
switch (plano) {
case "gold":
if (await excedeuLimiteDiario(remoteJid, plano)) {
res
.status(403)
.send("Você excedeu o limite diário de mensagens.");
return;
}
break;
case "diamante":
// Lógica para usuários diamante
break;
default:
if (await excedeuLimiteDiario(remoteJid, plano)) {
res
.status(403)
.send("Você excedeu o limite diário de mensagens.");
return;
}
break;
}
await processarYouTube(messageId, remoteJid, videoUrl, mensagem);
} catch (error) {
console.error(`Erro durante o processamento do vídeo: ${error}`);
}
}
} else {
// A mensagem não contém um link do YouTube, envie uma resposta padrão
const respostaPadrao = `Eu ainda não analiso textos 📝, mas você pode mandar *Áudios* 🎧, *Fotos* 📸, *Vídeos* 🎥 e Links do *YouTube* 🌐 que eu consigo analisar.\n\n*Obs: Não envie mais de uma mídia por vez, pois o processamento pode demorar.* ⏳`;
await enviarRespostaUsuario(remoteJid, respostaPadrao);
}
break;
default:
// Tipo de mensagem desconhecido
console.log("Tipo de mensagem desconhecido:", messageType);
res.status(400).send("Tipo de mensagem desconhecido.");
break;
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment