AIZorenixUploader AI appears to be a Telegram automation bot. Commands include /start, /@, /!, /@@, /*, /files, /dl, /verify. Observed in code: messaging, storage, libs, keyboards, web.

Utilityutility
42 commands0 envUpdated 1mo agoCreated Sep 22, 2026
Back to folder

commands/verify.js

javascript · 88 lines

Raw
1/**#command2name: verify3answer: 4keyboard: 5parse_mode: markdown6aliases: 7allow_only_group: false8need_reply: false9is_web: 010#command**/11 12// ═══════════ verify — بررسی دوباره قفل‌ها و ادامه دانلود ═══════════13let isCb = (update_type === "callback_query" && update && update.callback_query)14if (isCb) { await Api.answerCallbackQuery({ callback_query_id: update.callback_query.id }) }15 16let cfg = await db.bot.get("cfg", {})17let chans = (cfg.channels || []).filter(x => x)18let problems = []19let rows = []20 21// 🧑‍✈️ معافیت ادمین — پیش‌فرض خاموشه (قفل‌ها برای ادمین‌ها هم چک می‌شن)22let isStaff = (user.id === 5861439682 || (cfg.admins || []).indexOf(user.id) !== -1)23let bypass = (isStaff && cfg.gate_admin_bypass === true)24 25if (!bypass && cfg.gate_join !== false && chans.length) {26  let r = await Libs.mcl.check(user.id, chans.slice(0, 10))27  if (!r.allJoined) {28    problems.push("📢 عضویت در کانال‌های ما")29    rows = rows.concat(Libs.mcl.getBtn((r.left.length ? r.left : chans).slice(0, 10), { buttonPrefix: "📢 عضویت" }))30  }31}32if (!bypass && cfg.gate_save !== false) {33  let ok = await db.bot.get("sok:" + user.id, false)34  if (ok !== true) {35    problems.push("💾 سیو (سین) کردن پست")36    rows.push([{ text: "💾 سیو کردم", callback_data: "save" }])37  }38}39if (!bypass && cfg.gate_react !== false) {40  let ok = await db.bot.get("rok:" + user.id, false)41  if (ok !== true) {42    problems.push("❤️ ری‌اکشن روی پست کانال")43    if (cfg.react_link) { rows.push([{ text: "📌 رفتن به پست کانال", url: cfg.react_link }]) }44    rows.push([{ text: "✅ ری‌اکشن زدم", callback_data: "rc" }])45  }46}47 48// 🎁 قفل دعوت دوستان (پیش‌فرض ادمین + تعداد لازم همان آموزش) — همیشه چک می‌شه49let rRef = Number(cfg.gate_ref || 0)50let rInv = 051try { rInv = Number(await db.bot.get("inv:" + user.id, 0) || 0) } catch (e) { rInv = 0 }52if (!bypass && rRef > 0 && rInv < rRef) {53  problems.push("🎁 دعوت " + rRef + " نفر از دوستات (تا الان: " + rInv + " نفر)")54  rows.push([{ text: "🎁 دعوت دوستان / لینک من", callback_data: "dl davat" }])55}56let lastRefP = await db.bot.get("last:" + user.id, null)57if (!bypass && lastRefP) {58  let lastRefObj = await db.bot.get("p:" + lastRefP, null)59  let lastRefNeed = lastRefObj ? Number(lastRefObj.refneed || 0) : 060  if (lastRefNeed > 0 && rInv < lastRefNeed) {61    problems.push("🎁 دعوت " + lastRefNeed + " نفر برای همین آموزش (تا الان: " + rInv + " نفر)")62    rows.push([{ text: "🎁 دعوت دوستان / لینک من", callback_data: "dl davat" }])63  }64}65let lid = await db.bot.get("last:" + user.id, null)66 67if (problems.length) {68  rows.push([{ text: "🔄 بررسی مجدد", callback_data: "verify" }])69  let t = "❌ <b>هنوز کامل نشده:</b>\n\n"70  for (let i = 0; i < problems.length; i++) { t = t + "▫️ " + Libs.tgutil.escapeText(problems[i], "html") + "\n" }71  let act2 = []72  if (cfg.gate_join !== false && chans.length) { act2.push("📢 جوین") }73  if (cfg.gate_save !== false) { act2.push("💾 سیو/سین") }74  if (cfg.gate_react !== false) { act2.push("❤️ ری‌اکشن") }75  if (Number(cfg.gate_ref || 0) > 0) { act2.push("🎁 " + rRef + " دعوت دوستان") }76  t = t + "\n🔐 قفل‌های فعال: " + (act2.length ? act2.join(" | ") : "هیچ") + "\n"77  t = t + "\nانجامش بده و دوباره بررسی کن."78  return Api.sendMessage({ chat_id: chat.id, text: t, parse_mode: "HTML", reply_markup: { inline_keyboard: rows } })79}80 81Bot.sendMessage("✅ <b>همه شرایط تایید شد!</b>", { parse_mode: "HTML" })82await db.bot.set("pass:" + user.id, Date.now(), { ttl: 300 })83if (lid) {84  // فقط یک بار زنجیره — امن (سقف ۶ تاست)85  Bot.runCommand("dl go " + lid)86} else {87  Bot.sendMessage("حالا از /start آموزش مورد نظرت رو انتخاب کن. 📚")88}