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/profile.js

javascript · 179 lines

Raw
1/**#command2name: profile3answer: 4keyboard: 5parse_mode: markdown6aliases: 7allow_only_group: false8need_reply: false9is_web: 010#command**/11 12// ═══════════ profile — پروفایل کاربر ═══════════13let isCb = (update_type === "callback_query" && update && update.callback_query)14if (isCb) { await Api.answerCallbackQuery({ callback_query_id: update.callback_query.id }) }15 16let userLang = await db.bot.get("lang:" + user.id, "fa")17 18// 🔐 گارد قفل19let gcfg = {}20let gsok = false21let grok = false22let ginv = 023let gfresh = false24try {25  let gm0 = await db.bot.mget(["cfg", "sok:" + user.id, "rok:" + user.id, "inv:" + user.id, "pass:" + user.id])26  if (gm0) {27    gcfg = gm0["cfg"] || {}28    gsok = (gm0["sok:" + user.id] === true)29    grok = (gm0["rok:" + user.id] === true)30    ginv = Number(gm0["inv:" + user.id] || 0)31    if (gm0["pass:" + user.id] && (Date.now() - Number(gm0["pass:" + user.id]) < 180000)) { gfresh = true }32  }33} catch (e) { }34 35let gstaff = (user.id === 5861439682 || (gcfg.admins || []).indexOf(user.id) !== -1)36if (!gstaff) {37  let galways = (gcfg.gate_always === true)38  let gchans = (gcfg.channels || []).filter(x => x)39  let gjoinBad = false40  let gleft = []41  if (gcfg.gate_join !== false && gchans.length) {42    let gres = null43    try { gres = await Libs.mcl.check(user.id, gchans.slice(0, 10)) } catch (e) { gres = null }44    if (gres) {45      let gbad = Array.isArray(gres.invalid) ? gres.invalid : []46      gleft = Array.isArray(gres.left) ? gres.left : []47      gjoinBad = (gres.allJoined !== true)48      if (gjoinBad && gbad.length && gleft.length === 0) { gjoinBad = false }49    }50  }51  let gsaveNeed = (gcfg.gate_save !== false && !(gsok === true && (!galways || gfresh)))52  let greactNeed = (gcfg.gate_react !== false && !(grok === true && (!galways || gfresh)))53  let grefNeed = Number(gcfg.gate_ref || 0)54  let grefBad = (grefNeed > 0 && ginv < grefNeed)55 56  if (gjoinBad || gsaveNeed || greactNeed || grefBad) {57    let grows = []58    if (gjoinBad) {59      let gbtn = null60      try { gbtn = Libs.mcl.getBtn((gleft.length ? gleft : gchans).slice(0, 10), { buttonPrefix: (userLang === "en" ? "📢 Join" : (userLang === "ar" ? "📢 انضمام" : "📢 عضویت")) }) } catch (e) { gbtn = null }61      if (Array.isArray(gbtn) && gbtn.length) {62        grows = grows.concat(gbtn)63      } else {64        for (let gcx of (gleft.length ? gleft : gchans)) {65          if (String(gcx).indexOf("@") === 0) { grows.push([{ text: (userLang === "en" ? "📢 Join " : (userLang === "ar" ? "📢 انضمام " : "📢 عضویت ")) + gcx, url: "https://t.me/" + String(gcx).replace("@", ""), style: "primary" }]) }66        }67      }68    }69    if (gcfg.react_link && (gsaveNeed || greactNeed)) { grows.push([{ text: (userLang === "en" ? "📌 Go to Channel Post" : (userLang === "ar" ? "📌 الذهاب لمنشور القناة" : "📌 رفتن به پست کانال")), url: gcfg.react_link, style: "success" }]) }70    if (gsaveNeed) { grows.push([{ text: (userLang === "en" ? "🟢 💾 I Saved / Viewed" : (userLang === "ar" ? "🟢 💾 حفظت / شاهدت" : "💾 سیو کردم / سین کردم")), callback_data: "save", style: "success" }]) }71    if (greactNeed) { grows.push([{ text: (userLang === "en" ? "🟢 ❤️ I Reacted" : (userLang === "ar" ? "🟢 ❤️ تفاعلت مع المنشور" : "✅ ری‌اکشن زدم")), callback_data: "rc", style: "success" }]) }72    if (grefBad) { grows.push([{ text: (userLang === "en" ? "🔵 🎁 Invite Friends / My Link" : (userLang === "ar" ? "🔵 🎁 دعوة الأصدقاء / رابطي" : "🎁 دعوت دوستان / لینک من")), callback_data: "dl davat", style: "primary" }]) }73    grows.push([74      { text: (userLang === "en" ? "🔵 🔄 Verify Status" : (userLang === "ar" ? "🔵 🔄 التحقق من الحالة" : "🔄 بررسی وضعیت")), callback_data: "verify", style: "primary" },75      { text: (userLang === "en" ? "🔴 ✈️ Support" : (userLang === "ar" ? "🔴 ✈️ الدعم الفني" : "📞 پشتیبانی")), callback_data: "support", style: "danger" }76    ])77 78    let gtxt = ""79    if (userLang === "en") {80      gtxt = "🔐 <b>Access Restricted — Complete Requirements First</b>\n\n"81      if (gjoinBad) { gtxt = gtxt + "▫️ 📢 Join our " + gchans.length + " channel(s)\n" }82      if (gsaveNeed) { gtxt = gtxt + "▫️ 💾 Save / View channel post\n" }83      if (greactNeed) { gtxt = gtxt + "▫️ ❤️ Add reaction to channel post\n" }84      if (grefBad) { gtxt = gtxt + "▫️ 🎁 Invite " + grefNeed + " friends (Current: " + ginv + ")\n" }85      gtxt = gtxt + "\n🤖 Click 'Verify Status' after completing them."86    } else if (userLang === "ar") {87      gtxt = "🔐 <b>الدخول مقفل — يرجى إكمال الشروط أولاً</b>\n\n"88      if (gjoinBad) { gtxt = gtxt + "▫️ 📢 الانضمام إلى " + gchans.length + " من قنواتنا\n" }89      if (gsaveNeed) { gtxt = gtxt + "▫️ 💾 حفظ / مشاهدة منشور القناة\n" }90      if (greactNeed) { gtxt = gtxt + "▫️ ❤️ التفاعل مع منشور القناة\n" }91      if (grefBad) { gtxt = gtxt + "▫️ 🎁 دعوة " + grefNeed + " أصدقاء (حالياً: " + ginv + ")\n" }92      gtxt = gtxt + "\n🤖 اضغط على 'التحقق من الحالة' بعد الإتمام."93    } else {94      gtxt = "🔐 <b>درِ ورود بسته است — اول قفل‌ها</b>\n\n"95      if (gjoinBad) { gtxt = gtxt + "▫️ 📢 عضویت در " + gchans.length + " کانال ما\n" }96      if (gsaveNeed) { gtxt = gtxt + "▫️ 💾 سیو (سین) کردن پست کانال\n" }97      if (greactNeed) { gtxt = gtxt + "▫️ ❤️ ری‌اکشن روی پست کانال\n" }98      if (grefBad) { gtxt = gtxt + "▫️ 🎁 دعوت " + grefNeed + " نفر از دوستات (تا الان: " + ginv + " نفر)\n" }99      gtxt = gtxt + "\n🤖 هر دکمه‌ای بزنی خودم دوباره چک می‌کنم؛ تا همه رعایت نشه از همین صفحه بیرون نمی‌ری."100    }101    return Api.sendMessage({ chat_id: chat.id, text: gtxt, parse_mode: "HTML", reply_markup: { inline_keyboard: grows } })102  }103}104 105let cfg = await db.bot.get("cfg", {})106let udl = await db.bot.get("udl:" + user.id, 0)107let plist = await db.bot.get("plist", [])108let chans = (cfg.channels || []).filter(x => x)109 110let state = []111let needVerify = false112 113if (cfg.gate_join !== false && chans.length) {114  let r = await Libs.mcl.check(user.id, chans.slice(0, 10))115  let okJoin = r.allJoined116  state.push((userLang === "en" ? "📢 Channels Join: " : (userLang === "ar" ? "📢 اشتراك القنوات: " : "📢 عضویت کانال‌ها: ")) + (okJoin ? "✅" : "❌"))117  if (!okJoin) { needVerify = true }118}119if (cfg.gate_save !== false) {120  let ok = await db.bot.get("sok:" + user.id, false)121  state.push((userLang === "en" ? "💾 Save (View): " : (userLang === "ar" ? "💾 حفظ المنشور: " : "💾 سیو (سین): ")) + (ok === true ? "✅" : "❌"))122  if (ok !== true) { needVerify = true }123}124if (cfg.gate_react !== false) {125  let ok = await db.bot.get("rok:" + user.id, false)126  state.push((userLang === "en" ? "❤️ Reaction: " : (userLang === "ar" ? "❤️ التفاعل: " : "❤️ ری‌اکشن: ")) + (ok === true ? "✅" : "❌"))127  if (ok !== true) { needVerify = true }128}129 130let t = ""131if (userLang === "en") {132  t = "<blockquote>👤 <b>USER PROFILE & ACCOUNT STATS</b></blockquote>\n\n" +133    "🪪 <b>Name:</b> " + Libs.tgutil.escapeText(user.full_name || user.first_name || "—", "html") + "\n" +134    "🔗 <b>Username:</b> " + (user.username ? "@" + user.username : "—") + "\n" +135    "🆔 <b>User ID:</b> <code>" + user.id + "</code>\n" +136    "🌐 <b>Language:</b> 🇬🇧 English\n" +137    "👥 <b>Total Invites:</b> <b>" + ginv + "</b>\n" +138    "⬇️ <b>Downloads:</b> <b>" + udl + "</b>\n" +139    "📚 <b>Total Library Tutorials:</b> <b>" + plist.length + "</b>\n"140  if (state.length) { t = t + "\n🔐 <b>Gates & Locks Status:</b>\n" + state.join("\n") + "\n" }141} else if (userLang === "ar") {142  t = "<blockquote>👤 <b>الملف الشخصي وإحصائيات الحساب</b></blockquote>\n\n" +143    "🪪 <b>الاسم:</b> " + Libs.tgutil.escapeText(user.full_name || user.first_name || "—", "html") + "\n" +144    "🔗 <b>المعرف:</b> " + (user.username ? "@" + user.username : "—") + "\n" +145    "🆔 <b>معرف المستخدم:</b> <code>" + user.id + "</code>\n" +146    "🌐 <b>اللغة:</b> 🇸🇦 العربية\n" +147    "👥 <b>إجمالي الدعوات:</b> <b>" + ginv + "</b>\n" +148    "⬇️ <b>التحميلات:</b> <b>" + udl + "</b>\n" +149    "📚 <b>إجمالي شروحات البوت:</b> <b>" + plist.length + "</b>\n"150  if (state.length) { t = t + "\n🔐 <b>حالة الأقفال والشروط:</b>\n" + state.join("\n") + "\n" }151} else {152  t = "👤 <b>پروفایل تو</b>\n\n" +153    "🪪 نام: " + Libs.tgutil.escapeText(user.full_name || user.first_name || "—", "html") + "\n" +154    "🔗 یوزرنیم: " + (user.username ? "@" + user.username : "—") + "\n" +155    "🆔 آیدی: <code>" + user.id + "</code>\n" +156    "🌐 زبان: 🇮🇷 فارسی\n" +157    "👥 دعوت‌های تو: <b>" + ginv + " نفر</b>\n" +158    "📅 اولین بازدید: " + (user.created_at ? String(user.created_at).slice(0, 10) : "—") + "\n" +159    "⬇️ دانلودهای تو: <b>" + udl + "</b>\n" +160    "📚 تعداد آموزش‌های ربات: <b>" + plist.length + "</b>\n"161  if (state.length) { t = t + "\n🔐 <b>وضعیت قفل‌ها</b>\n" + state.join("\n") + "\n" }162}163 164let rows = []165if (needVerify) { rows.push([{ text: (userLang === "en" ? "🔄 Verify Locks Status" : (userLang === "ar" ? "🔄 التحقق من الأقفال" : "🔄 بررسی وضعیت قفل‌ها")), callback_data: "verify", style: "primary" }]) }166rows.push([167  { text: (userLang === "en" ? "🟢 🎁 Claim Daily Gift" : (userLang === "ar" ? "🟢 🎁 الهدية اليومية" : "🟢 🎁 هدیه روزانه")), callback_data: "daily", style: "success" },168  { text: (userLang === "en" ? "🟣 🌐 Change Language" : (userLang === "ar" ? "🟣 🌐 تغيير اللغة" : "🟣 🌐 تغییر زبان")), callback_data: "lang", style: "primary" }169])170rows.push([171  { text: (userLang === "en" ? "🔴 📚 All Tutorials" : (userLang === "ar" ? "🔴 📚 كافة الشروحات" : "📚 همه آموزش‌ها")), callback_data: "files 0", style: "danger" },172  { text: (userLang === "en" ? "🔵 🏠 Main Menu" : (userLang === "ar" ? "🔵 🏠 القائمة الرئيسية" : "🏠 منوی اصلی")), callback_data: "/start", style: "primary" }173])174 175if (isCb && update.callback_query.message) {176  await Api.editMessageText({ chat_id: chat.id, message_id: update.callback_query.message.message_id, text: t, parse_mode: "HTML", reply_markup: { inline_keyboard: rows } })177} else {178  await Api.sendMessage({ chat_id: chat.id, text: t, parse_mode: "HTML", reply_markup: { inline_keyboard: rows } })179}