455 commands2 envUpdated 6h agoCreated Aug 26, 2026
commands/panel.js
javascript · 203 lines
1/**#command2name: panel3answer: 4keyboard: 5parse_mode: markdown6aliases: 7allow_only_group: false8need_reply: false9is_web: 010#command**/11 12/**#command13name: panel14answer: 15keyboard: 16parse_mode: markdown17aliases: 18allow_only_group: false19need_reply: false20is_web: 021#command**/22 23try {24 try { Api.answerCallbackQuery({}); } catch (eCb) {}25 26 var uid = "";27 if (typeof user !== "undefined" && user) {28 if (user.telegramid) uid = String(user.telegramid);29 else if (user.id) uid = String(user.id);30 }31 32 var isBoss = (uid === "5861439682");33 var rank = await db.global.get("rank_" + uid);34 var isAdmin = isBoss || (rank === "admin");35 36 if (!isAdmin) {37 Bot.sendMessage("🚫 فقط ادمین به پنل دسترسی دارد.");38 return;39 }40 41 var pr = isBoss ? "all" : String((await db.global.get("perms_" + uid)) || "");42 var prc = "," + pr + ",";43 var allOn = isBoss || pr === "all";44 var hasShop = allOn || prc.indexOf(",shop,") >= 0;45 var hasWal = allOn || prc.indexOf(",wal,") >= 0 || prc.indexOf(",pay,") >= 0;46 var hasCash = allOn || prc.indexOf(",cash,") >= 0;47 var hasMsn = allOn || prc.indexOf(",msn,") >= 0;48 var hasBan = allOn || prc.indexOf(",ban,") >= 0;49 var hasCast = allOn || prc.indexOf(",cast,") >= 0;50 var hasUser = allOn || prc.indexOf(",user,") >= 0;51 var hasBox = allOn || prc.indexOf(",box,") >= 0;52 var hasEvt = allOn || prc.indexOf(",evt,") >= 0;53 var hasSys = allOn || prc.indexOf(",sys,") >= 0;54 var hasUpd = allOn || prc.indexOf(",upd,") >= 0;55 56 var totalUsers = parseInt(await db.global.get("stat_total_users") || 0) || 0;57 var totalMsgs = parseInt(await db.global.get("stat_total_messages") || 0) || 0;58 var yadCnt = 0;59 try {60 var yl = JSON.parse(String((await db.global.get("yad_list")) || "[]"));61 if (yl && typeof yl.length === "number") yadCnt = yl.length;62 } catch (eY) { yadCnt = 0; }63 var bugCnt = 0;64 try {65 var bl = JSON.parse(String((await db.global.get("bug_box")) || "[]"));66 if (bl && typeof bl.length === "number") bugCnt = bl.length;67 } catch (eB) { bugCnt = 0; }68 var ideaCnt = 0;69 try {70 var il = JSON.parse(String((await db.global.get("idea_box")) || "[]"));71 if (il && typeof il.length === "number") ideaCnt = il.length;72 } catch (eI) { ideaCnt = 0; }73 var rptCnt = 0;74 try {75 var rb = JSON.parse(String((await db.global.get("rpt_box")) || "[]"));76 if (rb && typeof rb.length === "number") rptCnt = rb.length;77 } catch (eR) { rptCnt = 0; }78 79 var maint = await db.global.get("cfg_maintenance");80 var aiOff = await db.global.get("feat_ai_off");81 var growthOff = await db.global.get("feat_growth_off");82 var lotActive = await db.global.get("lot_active_");83 var lotTitle = await db.global.get("lot_title_");84 var lotTxt = lotActive === "1" ? ("🎟 فعال: " + (lotTitle || "بدون عنوان")) : "🎟 قرعهکشی خاموش";85 var maintTxt = maint ? "🔴 روشن" : "🟢 خاموش";86 var aiTxt = aiOff ? "🔴 OFF" : "🟢 ON";87 var growthTxt = growthOff ? "🔴 OFF" : "🟢 ON";88 var who = isBoss ? "💎 GLASS X · رئیس" : ("🛡 ادمین · " + (pr || "-"));89 var card = String((await db.global.get("shop_card")) || "5022291606999017");90 var cardTail = card;91 if (cardTail.length > 4) cardTail = "****" + cardTail.slice(cardTail.length - 4);92 93 var TZ_MIN = 210;94 var nowMs = Date.now();95 var tehran = new Date(nowMs + TZ_MIN * 60000);96 var hh = tehran.getUTCHours();97 var mm = tehran.getUTCMinutes();98 var ss = tehran.getUTCSeconds();99 var clock = (hh < 10 ? "0" : "") + hh + ":" + (mm < 10 ? "0" : "") + mm + ":" + (ss < 10 ? "0" : "") + ss;100 var mo = tehran.getUTCMonth() + 1;101 var da = tehran.getUTCDate();102 var dayTxt = tehran.getUTCFullYear() + "/" + (mo < 10 ? "0" : "") + mo + "/" + (da < 10 ? "0" : "") + da;103 104 var text =105 "✧ ━━ پنل شیشهای ━━ ✧\n" +106 who + "\n" +107 "───────────────\n" +108 "👥 کاربر: " + totalUsers + " 💬 پیام: " + totalMsgs + "\n" +109 "📜 یادگاری: " + yadCnt + "\n" +110 "🐞 باگ: " + bugCnt + " 💡 ایده: " + ideaCnt + " 🚩 گزارش: " + rptCnt + "\n" +111 "🛠 تعمیرات: " + maintTxt + "\n" +112 "🤖 AI: " + aiTxt + " 🚀 رشد: " + growthTxt + "\n" +113 lotTxt + "\n" +114 "💳 کارت شارژ: " + cardTail + "\n" +115 "───────────────\n" +116 "🕐 تهران " + dayTxt + " " + clock + "\n" +117 "فقط دکمههای تیکخوردهات اینجاست.\n" +118 "لیست دستور: /acmd";119 120 var rows = [];121 rows.push([{ text: "📖 ACMD", callback_data: "acmd" }]);122 if (isBoss) {123 rows.push([{ text: "🚀 آپدیت کاربر", callback_data: "setupdate" }, { text: "👑 ست ادمین", callback_data: "setadmin" }]);124 } else if (hasUpd) {125 rows.push([{ text: "🚀 آپدیت کاربر", callback_data: "setupdate" }]);126 }127 if (hasUser) {128 rows.push([{ text: "👤 بررسی", callback_data: "adm_checkuser" }, { text: "🔎 who", callback_data: "who" }]);129 rows.push([{ text: "🌱 Free", callback_data: "adm_setfree_guide" }, { text: "⚡️ Normal", callback_data: "adm_setnormal" }]);130 rows.push([{ text: "👑 Super", callback_data: "adm_setsuper" }, { text: "🪙 سکه ممبر", callback_data: "adm_addmcoins_guide" }]);131 }132 if (hasWal || hasCash) {133 rows.push([{ text: "💰 مدیریت کیف", callback_data: "wal_admin" }]);134 }135 if (hasWal) {136 rows.push([{ text: "➕ waladd", callback_data: "waladd" }, { text: "➖ waldel", callback_data: "waldel" }]);137 rows.push([{ text: "🔎 walsee", callback_data: "walsee" }]);138 }139 if (hasCash) {140 rows.push([{ text: "💵 cashadd", callback_data: "cashadd" }]);141 }142 if (hasShop) {143 rows.push([{ text: "🧾 سفارش", callback_data: "ord" }, { text: "🛠 شاپ ادمین", callback_data: "shop_admin" }]);144 rows.push([{ text: "💎 کد ZC", callback_data: "gczset" }, { text: "🏷 تخفیف", callback_data: "dscset" }]);145 rows.push([{ text: "💳 کارت شارژ", callback_data: "setcard" }]);146 rows.push([{ text: "🎁 کد هدیه", callback_data: "adm_giftcode" }, { text: "🗑 حذف کد", callback_data: "adm_delcode_guide" }]);147 }148 if (hasMsn) {149 rows.push([{ text: "📌 مأموریتها", callback_data: "msn" }, { text: "➕ msnset", callback_data: "msnset" }]);150 }151 if (hasBox) {152 rows.push([{ text: "🐞 باگ", callback_data: "buglist" }, { text: "💡 ایده", callback_data: "idealist" }]);153 rows.push([{ text: "🚩 گزارش", callback_data: "rptlist" }, { text: "📜 یادگاری لینک", callback_data: "yadlink" }]);154 }155 if (hasCast) {156 rows.push([{ text: "📣 npush", callback_data: "npush" }, { text: "📢 همگانی", callback_data: "adm_broadcast" }]);157 rows.push([{ text: "✉️ say", callback_data: "say" }, { text: "📰 پین", callback_data: "nwsset" }]);158 }159 if (hasEvt) {160 rows.push([{ text: "📊 نظرسنجی", callback_data: "polnew" }, { text: "⏹ بستن نظر", callback_data: "polx" }]);161 rows.push([{ text: "⏳ رویداد", callback_data: "evset" }, { text: "🎟 قرعه", callback_data: "adm_lottery_menu" }]);162 }163 rows.push([{ text: "🛒 دیوار فریفایر", callback_data: "ffwad" }, { text: "🎨 کاستوم فریفایر", callback_data: "cffad" }]);164 rows.push([{ text: "🏆 تورنمنت", callback_data: "trn" }, { text: "🛠 تورنمنت ادمین", callback_data: "trnad" }]);165 rows.push([{ text: "🎫 تیکتها", callback_data: "tckad" }, { text: "❓ هلپ", callback_data: "hpadm" }]);166 rows.push([{ text: "➕ هلپ", callback_data: "hpad" }, { text: "✏️ هلپ", callback_data: "hped" }]);167 rows.push([{ text: "🗑 هلپ", callback_data: "hpdl" }]);168 if (hasBan) {169 rows.push([{ text: "⚠️ اخطار", callback_data: "warn" }, { text: "✅ unw", callback_data: "unw" }]);170 rows.push([{ text: "🚫 spam", callback_data: "spam" }, { text: "🔨 بن", callback_data: "adm_ban_guide" }]);171 rows.push([{ text: "♻️ آنبن", callback_data: "adm_unban_guide" }]);172 }173 if (hasSys) {174 rows.push([{ text: "🎛 AI", callback_data: "adm_feat_toggle_ai" }, { text: "🛠 تعمیرات", callback_data: "adm_toggle_maint" }]);175 rows.push([{ text: "🚀 رشد", callback_data: "adm_growth_menu" }, { text: "🧩 بخشها", callback_data: "adm_features_menu" }]);176 }177 rows.push([{ text: "♻️ رفرش", callback_data: "panel" }, { text: "🏠 منو", callback_data: "/start" }]);178 179 var keyboard = { inline_keyboard: rows };180 181 var refreshed = false;182 try {183 var cq = (typeof update !== "undefined" && update && update.callback_query) ? update.callback_query : null;184 if (cq && cq.message && cq.message.message_id && cq.message.chat && cq.message.chat.id) {185 await Api.editMessageText({186 chat_id: cq.message.chat.id,187 message_id: cq.message.message_id,188 text: text,189 reply_markup: keyboard190 });191 refreshed = true;192 }193 } catch (eEdit) {194 refreshed = false;195 }196 197 if (!refreshed) {198 Api.sendMessage({ text: text, reply_markup: keyboard });199 }200 201} catch (e) {202 Bot.sendMessage("⚠️ خطا panel:\n" + String(e && e.message ? e.message : e));203}