// code from goatstore // api: https://store.agi.bd const moment = require("moment-timezone"); const TARGET_THREAD_ID = "61559237171744"; // module.exports = { config: { name: "botLogger", version: "3.0-Bilingual", author: "๐‘๐€๐˜๐‡๐€๐-๐’๐€๐๐๐ˆ๐‘", category: "events" }, onStart: async ({ event, api, threadsData, usersData }) => { const botID = api.getCurrentUserID(); const date = moment().tz("Asia/Dhaka").format("DD/MM/YYYY"); const time = moment().tz("Asia/Dhaka").format("hh:mm:ss A"); // BOT ADDED LOG if (event.logMessageType === "log:subscribe") { const addedParticipants = event.logMessageData.addedParticipants || []; const isBotAdded = addedParticipants.some(p => p.userFbId === botID); if (isBotAdded) { const threadID = event.threadID; const authorID = event.author; const threadInfo = await threadsData.get(threadID) || {}; const threadName = threadInfo.threadName || "Unknown Group / เฆ…เฆœเฆพเฆจเฆพ เฆ—เงเฆฐเงเฆช"; const adderName = await usersData.getName(authorID) || "Unknown User"; const logMessage = `ยป ๐Ÿ‘‘ ๐‘๐€๐˜๐‡๐€๐-๐’๐€๐๐๐ˆ๐‘ ๐Ÿ‘‘ โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€ ยป ๐Ÿšจ ๐—•๐—ข๐—ง ๐—”๐——๐—˜๐—— / เฆฌเฆŸ เฆ…เงเฆฏเฆพเฆก เฆนเฆฏเฆผเง‡เฆ›เง‡ ยป ๐Ÿ“Œ ๐—š๐—ฟ๐—ผ๐˜‚๐—ฝ / เฆ—เงเฆฐเงเฆช: ${threadName} ยป ๐Ÿ†” ๐—š๐—ฟ๐—ผ๐˜‚๐—ฝ ๐—œ๐——: ${threadID} ยป ๐Ÿ‘ค ๐—”๐—ฑ๐—ฑ๐—ฒ๐—ฑ ๐—•๐˜† / เฆ…เงเฆฏเฆพเฆก เฆ•เฆฐเง‡เฆ›เง‡: ${adderName} ยป ๐Ÿ†” ๐—”๐—ฑ๐—ฑ๐—ฒ๐—ฟ ๐—œ๐——: ${authorID} ยป ๐Ÿ“… ๐——๐—ฎ๐˜๐—ฒ / เฆคเฆพเฆฐเฆฟเฆ–: ${date} ยป โฐ ๐—ง๐—ถ๐—บ๐—ฒ / เฆธเฆฎเฆฏเฆผ: ${time} โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€ ยป ๐Ÿงšโ€โ™€๏ธ ๐—ก๐—œ๐—๐—›๐—จ๐—  ๐—–๐—›๐—”๐—ง๐—•๐—ข๐—ง ยป ๐Ÿ‘‘ Owner: ๐‘๐€๐˜๐‡๐€๐-๐’๐€๐๐๐ˆ๐‘`; try { await api.sendMessage(logMessage, TARGET_THREAD_ID); } catch (err) { console.error("[BotLogger Error]:", err); } } } // BOT KICKED / LEFT LOG if (event.logMessageType === "log:unsubscribe") { const leftParticipantId = event.logMessageData.leftParticipantFbId; if (leftParticipantId === botID) { const threadID = event.threadID; const authorID = event.author; const threadInfo = await threadsData.get(threadID) || {}; const threadName = threadInfo.threadName || "Unknown Group / เฆ…เฆœเฆพเฆจเฆพ เฆ—เงเฆฐเงเฆช"; const kickerName = authorID ? await usersData.getName(authorID) || "Unknown User" : "System / Self"; const logMessage = `ยป ๐Ÿ‘‘ ๐‘๐€๐˜๐‡๐€๐-๐’๐€๐๐๐ˆ๐‘ ๐Ÿ‘‘ โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€ ยป โš ๏ธ ๐—•๐—ข๐—ง ๐—ž๐—œ๐—–๐—ž๐—˜๐—— / เฆฌเฆŸเฆ•เง‡ เฆ•เฆฟเฆ• เฆฆเง‡เฆ“เฆฏเฆผเฆพ เฆนเฆฏเฆผเง‡เฆ›เง‡ ยป ๐Ÿ“Œ ๐—š๐—ฟ๐—ผ๐˜‚๐—ฝ / เฆ—เงเฆฐเงเฆช: ${threadName} ยป ๐Ÿ†” ๐—š๐—ฟ๐—ผ๐˜‚๐—ฝ ๐—œ๐——: ${threadID} ยป ๐Ÿ‘ค ๐—ฅ๐—ฒ๐—บ๐—ผ๐˜ƒ๐—ฒ๐—ฑ ๐—•๐˜† / เฆ•เฆฟเฆ• เฆฆเฆฟเฆฏเฆผเง‡เฆ›เง‡: ${kickerName} ยป ๐Ÿ†” ๐—ž๐—ถ๐—ฐ๐—ธ๐—ฒ๐—ฟ ๐—œ๐——: ${authorID} ยป ๐Ÿ“… ๐——๐—ฎ๐˜๐—ฒ / เฆคเฆพเฆฐเฆฟเฆ–: ${date} ยป โฐ ๐—ง๐—ถ๐—บ๐—ฒ / เฆธเฆฎเฆฏเฆผ: ${time} โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€ ยป ๐Ÿงšโ€โ™€๏ธ ๐—ก๐—œ๐—๐—›๐—จ๐—  ๐—–๐—›๐—”๐—ง๐—•๐—ข๐—ง ยป ๐Ÿ‘‘ Owner: ๐‘๐€๐˜๐‡๐€๐-๐’๐€๐๐๐ˆ๐‘`; try { await api.sendMessage(logMessage, TARGET_THREAD_ID); } catch (err) { console.error("[BotLogger Error]:", err); } } } // BOT NICKNAME CHANGED LOG if (event.logMessageType === "log:user-nickname") { const participantId = event.logMessageData.participant_id; if (participantId === botID) { const threadID = event.threadID; const newNickname = event.logMessageData.nickname || "None / เฆจเฆพเฆ‡"; const authorID = event.author; const threadInfo = await threadsData.get(threadID) || {}; const threadName = threadInfo.threadName || "Unknown Group / เฆ…เฆœเฆพเฆจเฆพ เฆ—เงเฆฐเงเฆช"; const changerName = await usersData.getName(authorID) || "Unknown User"; const logMessage = `ยป ๐Ÿ‘‘ ๐‘๐€๐˜๐‡๐€๐-๐’๐€๐๐๐ˆ๐‘ ๐Ÿ‘‘ โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€ ยป โœ๏ธ ๐—•๐—ข๐—ง ๐—ก๐—œ๐—–๐—ž๐—ก๐—”๐— ๐—˜ ๐—–๐—›๐—”๐—ก๐—š๐—˜๐—— / เฆจเฆฟเฆ•เฆจเง‡เฆฎ เฆšเง‡เฆžเงเฆœ ยป ๐Ÿ“Œ ๐—š๐—ฟ๐—ผ๐˜‚๐—ฝ / เฆ—เงเฆฐเงเฆช: ${threadName} ยป ๐Ÿ†” ๐—š๐—ฟ๐—ผ๐˜‚๐—ฝ ๐—œ๐——: ${threadID} ยป ๐Ÿ‘ค ๐—–๐—ต๐—ฎ๐—ป๐—ด๐—ฒ๐—ฑ ๐—•๐˜† / เฆšเง‡เฆžเงเฆœ เฆ•เฆฐเง‡เฆ›เง‡: ${changerName} ยป ๐Ÿ†” ๐—–๐—ต๐—ฎ๐—ป๐—ด๐—ฒ๐—ฟ ๐—œ๐——: ${authorID} ยป ๐Ÿท๏ธ ๐—ก๐—ฒ๐˜„ ๐—ก๐—ถ๐—ฐ๐—ธ๐—ป๐—ฎ๐—บ๐—ฒ / เฆจเฆคเงเฆจ เฆจเฆพเฆฎ: ยป ๐Ÿซถ ${newNickname} ยป ๐Ÿ“… ๐——๐—ฎ๐˜๐—ฒ / เฆคเฆพเฆฐเฆฟเฆ–: ${date} ยป โฐ ๐—ง๐—ถ๐—บ๐—ฒ / เฆธเฆฎเฆฏเฆผ: ${time} โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€ ยป ๐Ÿงšโ€โ™€๏ธ ๐—ก๐—œ๐—๐—›๐—จ๐—  ๐—–๐—›๐—”๐—ง๐—•๐—ข๐—ง ยป ๐Ÿ‘‘ Owner: ๐‘๐€๐˜๐‡๐€๐-๐’๐€๐๐๐ˆ๐‘`; try { await api.sendMessage(logMessage, TARGET_THREAD_ID); } catch (err) { console.error("[BotLogger Error]:", err); } } } } };