aziziyanmahdiyar/ZorenixUploaderAI_UploaderbotPublic · Bot Template
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
commands/fsave.js
javascript · 97 lines
1/**#command2name: fsave3answer: 4keyboard: 5parse_mode: markdown6aliases: 7allow_only_group: false8need_reply: false9is_web: 010#command**/11 12// ═══════════ fsave — ثبت نهایی آموزش ═══════════13let OWNER = 586143968214let cfg = await db.bot.get("cfg", {})15let admins = cfg.admins || []16if (!user || (user.id !== OWNER && admins.indexOf(user.id) === -1)) { return }17 18if (update_type === "callback_query" && update && update.callback_query) {19 await Api.answerCallbackQuery({ callback_query_id: update.callback_query.id })20}21 22let d = await db.bot.get("draft:" + user.id, null)23if (!d) {24 return Bot.sendMessage("❌ پیشنویس پیدا نشد. از پنل → ➕ افزودن آموزش شروع کن.")25}26 27let id = await db.bot.incr("next_id", 1)28 29await db.bot.set("p:" + id, {30 id: id,31 title: d.title || ("آموزش #" + id),32 preview: d.preview || "",33 desc: d.desc || "",34 cover: d.cover || null,35 link: d.link || "",36 pass: d.pass || "",37 file_id: d.file_id || "",38 file_type: d.file_type || "",39 file_name: d.file_name || "",40 published: false,41 chmsg: null,42 dl: 0,43 by: user.id,44 created: new Date().toISOString()45})46 47let plist = await db.bot.get("plist", [])48plist.push(id)49await db.bot.set("plist", plist)50await db.bot.del("draft:" + user.id)51await db.bot.del("wstep:" + user.id)52 53Api.sendMessage({54 chat_id: chat.id,55 text: "🎉 <b>آموزش ساخته شد!</b>\n\n🆔 کد آموزش: <code>" + id + "</code>\n📝 " + Libs.tgutil.escapeText(d.title || ("آموزش #" + id), "html") + "\n" + (d.pass ? "🔒 با رمز\n" : "") + (d.file_id ? "" : "ℹ️ بدون فایل (فقط ویدیو/توضیحات)\n") + "\nحالا کاربرا از /start یا کیبورد پایین میتونن بازش کنن.",56 parse_mode: "HTML",57 reply_markup: {58 inline_keyboard: [59 [{ text: "📢 ارسال به کانال", callback_data: "adm pub " + id }],60 [{ text: "🗂 مدیریت آموزش", callback_data: "adm item " + id }, { text: "🛠 پنل", callback_data: "adm home" }]61 ]62 }63})64 65// ⌨️ کیبورد پایین صفحه با آموزشهای جدید (برای همین ادمین، که ببینه چطور شده)66if (cfg.show_kb !== false) {67 let kIds = plist.slice().reverse()68 let kData = {}69 for (let ci = 0; ci < kIds.length; ci += 30) {70 let ck = kIds.slice(ci, ci + 30)71 let cp = await db.bot.mget(ck.map(x => "p:" + x))72 if (cp) { for (let key in cp) { kData[key] = cp[key] } }73 }74 let kbTop = [75 [{ text: "📚 آموزشها" }, { text: "🔎 جستوجو" }],76 [{ text: "👤 پروفایل من" }, { text: "❓ راهنما" }],77 [{ text: "📞 پشتیبانی" }]78 ]79 let fRows = []80 let cur = []81 for (let kid of kIds) {82 let kp = kData["p:" + kid]83 if (!kp) { continue }84 let kt = kp.title || ("آموزش #" + kid)85 if (kt.length > 28) { kt = kt.slice(0, 28) + "…" }86 cur.push({ text: (kp.pass ? "🔒 " : "📄 ") + kt })87 if (cur.length === 2) { fRows.push(cur); cur = [] }88 }89 if (cur.length) { fRows.push(cur) }90 91 Api.sendMessage({92 chat_id: chat.id,93 text: "⌨️ <b>کیبورد پایین صفحه آپدیت شد</b> — آموزش جدید اضافه شد ✅",94 parse_mode: "HTML",95 reply_markup: { keyboard: [kbTop[0]].concat(fRows).concat(kbTop.slice(1)), resize_keyboard: true }96 })97}