From 38b2f6810407fdb35499d7723931f85f99e6a515 Mon Sep 17 00:00:00 2001 From: binsarjr Date: Wed, 21 Feb 2024 19:37:41 +0700 Subject: [PATCH] auto reveal view once --- src/Facades/WhatsappClient.ts | 3 +- src/Handler/AutoRevealOnceView.ts | 66 +++++++++++++++++++++++++++++++ src/index.ts | 2 + 3 files changed, 70 insertions(+), 1 deletion(-) create mode 100644 src/Handler/AutoRevealOnceView.ts diff --git a/src/Facades/WhatsappClient.ts b/src/Facades/WhatsappClient.ts index ac78eb8..f64668d 100644 --- a/src/Facades/WhatsappClient.ts +++ b/src/Facades/WhatsappClient.ts @@ -91,9 +91,10 @@ export class WhatsappClient { */ const text = getMessageCaption(message.message); if (handler.patterns) validatePatternMatch(text, handler.patterns); - if (!text) break; if (handler instanceof MessageUpsertWithGemini) { + if (!text) break; + try { const prompts = await createPrompt(text); console.log("\n\n\n\n\n\n\n\n"); diff --git a/src/Handler/AutoRevealOnceView.ts b/src/Handler/AutoRevealOnceView.ts new file mode 100644 index 0000000..e3753de --- /dev/null +++ b/src/Handler/AutoRevealOnceView.ts @@ -0,0 +1,66 @@ +import { + MessageUpsertType, + downloadMediaMessage, + proto, +} from "@whiskeysockets/baileys"; +import type { ChatType } from "../Contracts/ChatType"; +import { HandlerArgs } from "../Contracts/IEventListener"; +import { MessageUpsert } from "../Facades/Events/Message/MessageUpsert"; +import Queue from "../Facades/Queue"; +import { sendMessageWTyping } from "../utils"; + +export class AutoRevealOnceView extends MessageUpsert { + chat: ChatType = "all"; + type: MessageUpsertType | "all" = "all"; + async handler({ + socket, + props, + }: HandlerArgs<{ + message: proto.IWebMessageInfo; + type: MessageUpsertType; + }>): Promise { + const jid = props.message.key.remoteJid || ""; + + const isViewOnce = !!props.message.message?.viewOnceMessage; + if (isViewOnce) { + const image = + props.message.message?.viewOnceMessage?.message?.imageMessage; + const video = + props.message.message?.viewOnceMessage?.message?.videoMessage; + const caption = image?.caption || video?.caption; + + let text = `👀 View Once Message Revealed 👀\n`; + if (caption) { + text += `Caption: ${caption}\n`; + } + const media = await downloadMediaMessage(props.message, "buffer", {}); + + text = text.trim(); + if (image) { + Queue(() => + sendMessageWTyping( + { + image: media as Buffer, + caption: text, + }, + jid, + socket, + { quoted: props.message } + ) + ); + } else if (video) { + Queue(() => + sendMessageWTyping( + { + video: media as Buffer, + caption: text, + }, + jid, + socket, + { quoted: props.message } + ) + ); + } + } + } +} diff --git a/src/index.ts b/src/index.ts index f247e81..920d3cd 100644 --- a/src/index.ts +++ b/src/index.ts @@ -1,6 +1,7 @@ import dotenv from "dotenv"; import { gracefulShutdown } from "node-schedule"; import { WhatsappClient } from "./Facades/WhatsappClient"; +import { AutoRevealOnceView } from "./Handler/AutoRevealOnceView"; import { ClearDataStore } from "./Handler/ClearDataStore"; import { CobaButton } from "./Handler/CobaButton"; import { BalasanTerimaKasih } from "./Handler/Command/BalasanTerimaKasih"; @@ -46,6 +47,7 @@ client.addHandler( client.addHandler(new SetKesibukkan(), new LagiFree(), new LagiDiChatHandler()); // client.addHandler(new JanganManggilDoang()); client.addHandler(new BalasanTerimaKasih()); +client.addHandler(new AutoRevealOnceView()); client.addHandler( new AddMember(), new KickMember(),