const pageGifs = [ // صورة الصفحة 1 "https://media1.tenor.com/m/3DldX9fbQkEAAAAC/northern-blade-myra.gif", // صورة الصفحة 2 "https://media.tenor.com/h7Y69BW96Z0AAAAM/anime-balls.gif", // صورة الصفحة 3 "https://media0.giphy.com/media/v1.Y2lkPTc5MGI3NjExa2VvY3lmdzlxeWJwMmpvbjhlajNnN2N2OTNpYjh4dWE1MmVsa25yYyZlcD12MV9pbnRlcm5hbF9naWZfYnlfaWQmY3Q9Zw/4ilFRqgbzbx4c/giphy.gif", // صورة الصفحة 4 (وما بعدها) "https://media2.giphy.com/media/v1.Y2lkPTc5MGI3NjExb3I3aW02Y3I1eHplYnlwcnIyeDhmc3BsMm41dHAwY2duNXVyYTQxeiZlcD12MV9pbnRlcm5hbF9naWZfYnlfaWQmY3Q9Zw/3WnrqPEnnCQkTCWFrl/giphy.gif" ]; // قاموس الشرح العربي الكامل لجميع الأوامر const translations = { // ADMIN & SYSTEM cmd: "إدارة ملفات الأوامر", setting: "إعدادات البوت العامة", adminmention: "تنبيه المشرفين", anti_isis_leave: "منع الخروج التلقائي", autoreact: "تفاعل تلقائي", autoseen: "قراءة الرسائل تلقائياً", delete: "حذف أمر من البوت", fork: "نسخ مشروع البوت", goatstore: "متجر الأوامر", help: "عرض قائمة المساعدة", join: "انضمام عبر الرابط", up: "مدة التشغيل والأداء", // AI "4k": "ترقية الصورة لـ 4K", age: "تخمين العمر من الصورة", edit: "تعديل الصور بالذكاء", liner: "مساعد الذكاء Liner", prompt: "استخراج وصف الصورة", remini: "تحسين جودة الصور", weather: "حالة الطقس", webinfo: "جلب معلومات موقع", // AI-IMAGE creart: "توليد صور فنية", flux: "توليد صور واقعية", gcimg: "توليد غلاف للمجموعة", imagen3: "توليد صور Imagen 3", imgen: "إنشاء صورة من النص", poli: "صور بأسلوب Pollinations", sdxl: "توليد صور SDXL", weigen: "توليد صور بجودة عالية", // ANIME aniinfo: "معلومات أنمي", manga: "معلومات مانجا", // BIRTHDAY wish: "تهنئة عيد ميلاد", // BOX & BOX CHAT groupimage: "تغيير صورة المجموعة", groupname: "تغيير اسم المجموعة", activemember: "الأعضاء التفاعليين", adduser: "إضافة عضو للمجموعة", admin: "إدارة المشرفين", all: "الإشارة للجميع", allbox: "عرض كل المجموعات", antichangeinfobox: "حماية معلومات الجروب", autosetname: "تسمية تلقائية", baby: "البوت التفاعلي", badwords: "فلتر الكلمات المسيئة", ban: "حظر عضو", boxinfo: "معلومات المجموعة", busy: "وضع عدم الإزعاج", count: "إحصائيات الرسائل", emoji: "تغيير إيموجي الجروب", filteruser: "تصفية الحسابات الميتة", onlyadminbox: "قصر الأوامر عالمشرفين", refresh: "تحديث بيانات الجروب", rules: "قوانين المجموعة", sendnoti: "إرسال إشعار عام", setname: "تغيير اسم المجموعة", tag: "الإشارة للجميع", tid: "معرف المجموعة", unsend: "حذف رسالة البوت", warn: "تحذير عضو", // CONFIG prefix: "تغيير بادئة البوت", setalias: "اسم مستعار للأمر", // CONTACTS ADMIN callad: "التواصل مع المطور", // CUSTOM setleave: "رسالة المغادرة", setwelcome: "رسالة الترحيب", shortcut: "إنشاء اختصار", // ECONOMY balance: "الرصيد والمحفظة", bet: "مراهنة بالأموال", daily: "المكافأة اليومية", leaderboard: "أغنى الأعضاء", math: "مسابقة رياضيات", quiz: "أسئلة وأجوبة", slot: "لعبة الحظ", // FUN blur: "تغبيش الصور", butslap: "صفع العضو", buzz: "تنبيه هزاز", emojimix: "دمج إيموجيين", fakechat: "محادثة مفبركة", fakechat2: "محادثة مفبركة 2", group_refresh: "تنشيط التفاعل", hack: "اختراق وهمي", jail: "الصورة في السجن", kiss: "تقبيل العضو", kiss2: "تقبيل متحرك", mia: "ميمز مي خليفة", mygirl: "عرض حبيبتك", needgf: "البحث عن حبيبة", nokia: "شاشة نوكيا", pair: "الزواج العشوائي", pet: "ملاطفة العضو", post: "منشور وهمي", time: "الوقت والتاريخ", toilet: "الصورة في المرحاض", trash: "رمي في القمامة", tv: "داخل شاشة تلفاز", videocall: "مكالمة وهمية", wanted: "مطلوب للعدالة", xray: "فحص أشعة", // GAME ffinfo: "حساب فري فاير", guessnumber: "تخمين الرقم", rank: "مستوى الرتبة", // GROUP protect: "حماية الجروب", // IMAGE pinterest: "صور من Pinterest", rbg: "إزالة الخلفية", sorthelp: "تنظيم الصور", // INFO & INFORMATION grouptag: "مناداة المجموعات", setrole: "صلاحيات الأوامر", texttoimage: "النص إلى صورة", owner: "معلومات المطور", // MEDIA anisearch: "فيديو أنمي", autolink: "تحميل تلقائي", catbox: "رفع لـ Catbox", convertmp3: "فيديو لـ MP3", download: "تحميل وسائط", gan: "توليد أغاني", pp: "صورة البروفايل", say: "النص إلى صوت", sing: "أغنية يوتيوب", tempmail: "إيميل وهمي", tiktok: "تحميل تيك توك", video: "فيديو يوتيوب", // OTHER & TOOLS imgur: "رفع لـ Imgur", imgbb: "رفع لـ ImgBB", // OWNER adminonly: "وضع المشرفين فقط", backupdata: "نسخ احتياطي", clear: "تنظيف الكاش", eval: "كود جافاسكربت مباشر", event: "الأحداث التلقائية", filecmd: "جلب كود أمر", getfbstate: "كوكيز البوت", ignoreonlyad: "تجاهل أوامر المشرفين", ignoreonlyadbox: "تجاهل المشرفين", install: "تثبيت أمر", jsontomongodb: "نقل لـ MongoDB", jsontosqlite: "نقل لـ SQLite", kick: "طرد عضو", kickall: "طرد الجميع", loadconfig: "إعادة تحميل الإعدادات", notification: "إشعار عام", out: "خروج من المجموعة", pending: "المجموعات المعلقة", restart: "إعادة التشغيل", setavt: "بروفايل البوت", setlang: "تغيير اللغة", setrankup: "إشعارات الرتبة", thread: "بيانات الجروب", update: "تحديث من GitHub", user: "بيانات المستخدمين", whitelist: "القائمة البيضاء", // RANK customrankcard: "تخصيص بطاقة الرتبة", rankup: "ترقية الرتبة", // SOFTWARE appstore: "تطبيقات AppStore", // SUPPORTGC supportgc: "الدعم الفني", // UTILITY accept: "قبول طلبات الانضمام", fbcover: "غلاف فيسبوك", pastebin: "رفع على Pastebin", qrgen: "صنع QR", translate: "ترجمة النصوص", uid: "معرف الحساب UID", webss: "لقطة شاشة لموقع", // WIKI emojimean: "معنى الإيموجي" }; // قاموس ترجمة الفئات const categoryNames = { admin: "⚙️ الإدارة العليا", ai: "🤖 الذكاء الاصطناعي", "ai-image": "🎨 توليد الصور", anime: "🌸 الأنمي والمانجا", birthday: "🎂 أعياد الميلاد", box: "📦 إعدادات الصندوق", "box chat": "👥 إدارة المحادثة", config: "🔧 الإعدادات", "contacts admin": "📞 التواصل مع المطور", custom: "🛠️ التخصيص والترحيب", economy: "💰 الاقتصاد والألعاب", fun: "🎮 التسلية والترفيه", game: "🏆 الألعاب", group: "🛡️ حماية المجموعات", image: "🖼️ أدوات الصور", info: "ℹ️ معلومات عامة", information: "📜 تفاصيل البوت", love: "❤️ الحب والزواج", media: "📥 التحميل والميديا", other: "📁 أخرى", owner: "👑 أدوات المطور", rank: "📊 التفاعل والرتب", software: "📱 التطبيقات", supportgc: "💬 جروب الدعم", system: "🖥️ النظام والأداء", tools: "🔨 أدوات الرفع", utility: "🛠️ الأدوات العامة", wiki: "📖 الموسوعة والشروح" }; // --- دالة توليد الصفحات لتجنب التكرار --- function generatePageContent(page, allCommands, prefix) { const categories = {}; for (const [name, cmd] of allCommands) { const cat = (cmd.config.category || "other").toLowerCase(); if (!categories[cat]) categories[cat] = []; categories[cat].push(name); } const categoryKeys = Object.keys(categories).sort(); const catsPerPage = 7; // عدد الفئات في كل صفحة (ينتج حوالي 4 صفحات) const totalPages = Math.ceil(categoryKeys.length / catsPerPage); const actualPage = Math.max(1, Math.min(page, totalPages)); const start = (actualPage - 1) * catsPerPage; const end = start + catsPerPage; const currentCats = categoryKeys.slice(start, end); let msg = `╭━━━ ❖ [ 𝐀𝐒𝐔𝐑𝐀 𝐁𝐎𝐓 ] ❖ ━━━╮\n`; msg += `┃ ✧ البادئة : [ ${prefix} ]\n`; msg += `┃ ✧ الأوامر : ${allCommands.size} أمر\n`; msg += `╰━━━━━━━━━━━━━━━━━━━━━╯\n\n`; for (const cat of currentCats) { const catTitle = categoryNames[cat] || `📁 ${cat.toUpperCase()}`; msg += ` ❖ ${catTitle} ❖\n`; for (const cmdName of categories[cat].sort()) { const arMeaning = translations[cmdName] ? ` ⇦ (${translations[cmdName]})` : ""; msg += ` ├ ✧ ${cmdName}${arMeaning}\n`; } msg += `\n`; } msg += `╭━━━━━━━━━━━━━━━━━━━━━╮\n`; msg += ` 📄 الصفحة [ ${actualPage} من ${totalPages} ]\n`; if (actualPage < totalPages) { msg += ` 💡 للرد اكتب "التالي" أو "2"\n`; } else { msg += ` 💡 للرد اكتب "السابق"\n`; } msg += ` 🔍 لتفاصيل أمر: ${prefix}help <الاسم>\n`; msg += `╰━━━━━━━━━━━━━━━━━━━━━╯`; return { msg, totalPages, actualPage }; } module.exports = { config: { name: "مساعدة", aliases: ["help", "menu", "commands", "المساعدة", "الاوامر", "هيلب"], version: "9.0", author: "Hamza", shortDescription: "عرض قائمة المساعدة", longDescription: "عرض قائمة المساعدة", category: "system", guide: "{pn} [رقم الصفحة | اسم الأمر]" }, onStart: async function ({ api, event, args, prefix }) { const allCommands = global.GoatBot.commands; // حالة الاستعلام عن أمر معين بالاسم if (args[0] && isNaN(parseInt(args[0]))) { const cmdName = args[0].toLowerCase(); const cmd = allCommands.get(cmdName) || [...allCommands.values()].find(c => c.config.aliases?.includes(cmdName)); if (!cmd) { return api.sendMessage( `❌ الأمر '${cmdName}' غير موجود!\n➤ اكتب ${prefix}help لرؤية القائمة.`, event.threadID ); } const usage = typeof cmd.config.guide === "string" ? cmd.config.guide.replace("{pn}", cmd.config.name) : cmd.config.name; const infoMsg = `╭━━━ ❖ [ تفاصيل الأمر ] ❖ ━━━╮ ✧ الاسم : ${cmd.config.name} ✧ الشرح : ${translations[cmd.config.name] || "لا يوجد شرح مختصر"} ✧ الألقاب: ${cmd.config.aliases?.join(", ") || "لا يوجد"} ✧ الفئة : ${categoryNames[(cmd.config.category || "").toLowerCase()] || cmd.config.category || "أخرى"} ✧ الاستخدام: ${prefix}${usage} ╰━━━━━━━━━━━━━━━━━━━━━╯ 📝 ${(cmd.config.longDescription || cmd.config.shortDescription || "لا يوجد وصف تفصيلي")}`; return api.sendMessage(infoMsg, event.threadID); } // جلب الصفحة المطلوبة let requestedPage = 1; if (args[0] && !isNaN(parseInt(args[0]))) { requestedPage = parseInt(args[0]); } const { msg, totalPages, actualPage } = generatePageContent(requestedPage, allCommands, prefix); // تحديد رابط الصورة حسب الصفحة const gifIndex = Math.min(actualPage - 1, pageGifs.length - 1); const gifUrl = pageGifs[gifIndex]; return api.sendMessage( { body: msg, attachment: await global.utils.getStreamFromURL(gifUrl) }, event.threadID, (err, info) => { if (err) return; // حفظ بيانات الرسالة لتفعيل الردود للانتقال بين الصفحات global.GoatBot.onReply.set(info.messageID, { commandName: "مساعدة", messageID: info.messageID, author: event.senderID, currentPage: actualPage, totalPages: totalPages }); } ); }, onReply: async function ({ api, event, Reply, prefix }) { // التأكد أن الرد من نفس الشخص الذي طلب القائمة if (event.senderID !== Reply.author) return; const replyText = event.body.trim().toLowerCase(); let targetPage = Reply.currentPage; if (replyText === "التالي" || replyText === "next") { targetPage++; } else if (replyText === "السابق" || replyText === "prev" || replyText === "السابقة") { targetPage--; } else if (!isNaN(parseInt(replyText))) { targetPage = parseInt(replyText); } else { return; // تجاهل أي رد لا يخص تصفح القائمة } if (targetPage < 1 || targetPage > Reply.totalPages) { return api.sendMessage("❌ رقم الصفحة غير متاح.", event.threadID, event.messageID); } // حذف الرسالة القديمة للقائمة حتى يبقى الجروب نظيفاً api.unsendMessage(Reply.messageID).catch(e => {}); const allCommands = global.GoatBot.commands; const { msg, totalPages, actualPage } = generatePageContent(targetPage, allCommands, prefix); const gifIndex = Math.min(actualPage - 1, pageGifs.length - 1); const gifUrl = pageGifs[gifIndex]; return api.sendMessage( { body: msg, attachment: await global.utils.getStreamFromURL(gifUrl) }, event.threadID, (err, info) => { if (err) return; // تحديث المراقبة للرسالة الجديدة global.GoatBot.onReply.set(info.messageID, { commandName: "مساعدة", messageID: info.messageID, author: event.senderID, currentPage: actualPage, totalPages: totalPages }); } ); } };