CREATORS/OnecreatorsbotPublic · Bot Template
AIThe bot manages a membership club called CREATORS. Users can apply for membership, view their status, and receive payment instructions. Administrators can approve or reject applications, set subscription prices, configure payment details, and review pending payments. The bot stores data in a database, sends notifications to users and admins, and handles payment receipts via photo or document uploads.
Commercemembershipsubscriptionpaymentsadmincreatortelegram
22 commands1 envUpdated 20d agoCreated Oct 6, 2026
commands/_members.js
javascript · 113 lines
1/**#command2name: /members3answer: 4keyboard: 5parse_mode: markdown6aliases: 7allow_only_group: false8need_reply: false9is_web: 010#command**/11 12 13const adminId = String(process.env.ADMIN_ID);14 15if (String(user.id) !== adminId) {16 await Api.sendMessage({17 chat_id: chat.id,18 text: "⛔️ این پنل فقط برای مدیر مجموعه است."19 });20 return;21}22 23const users = await Bot.getUsers();24 25if (!Array.isArray(users) || users.length === 0) {26 await Api.sendMessage({27 chat_id: chat.id,28 text: "هنوز کاربری برای نمایش ثبت نشده است."29 });30 return;31}32 33const pageSize = 10;34const requestedPage = Number(String(params || "").trim() || "1");35const totalPages = Math.max(1, Math.ceil(users.length / pageSize));36 37const page = Number.isInteger(requestedPage)38 ? Math.min(Math.max(1, requestedPage), totalPages)39 : 1;40 41const startIndex = (page - 1) * pageSize;42const pageUsers = users.slice(startIndex, startIndex + pageSize);43const keyboard = [];44 45for (const rawId of pageUsers) {46 const targetId = Number(rawId);47 48 if (!Number.isSafeInteger(targetId) || targetId <= 0) {49 continue;50 }51 52 const name = await db.user.get(53 "profile_name",54 "",55 { user_id: targetId }56 );57 58 const username = await db.user.get(59 "profile_username",60 "",61 { user_id: targetId }62 );63 64 const status = await db.user.get(65 "membership_status",66 "ثبتنشده",67 { user_id: targetId }68 );69 70 const labelName = String(name || username || "بدون نام")71 .replace(/[\r\n]+/g, " ")72 .slice(0, 30);73 74 keyboard.push([75 {76 text: "👤 " + labelName + " | " + targetId,77 callback_data: "member_profile_" + targetId78 }79 ]);80}81 82const nav = [];83 84if (page > 1) {85 nav.push({86 text: "⬅️ صفحه قبل",87 callback_data: "members_page_" + (page - 1)88 });89}90 91if (page < totalPages) {92 nav.push({93 text: "صفحه بعد ➡️",94 callback_data: "members_page_" + (page + 1)95 });96}97 98if (nav.length > 0) {99 keyboard.push(nav);100}101 102await Api.sendMessage({103 chat_id: chat.id,104 text:105 "👑 پنل مدیریت اعضای CREATORS\n" +106 "━━━━━━━━━━━━━━━━━━\n\n" +107 "👥 تعداد کاربران ثبتشده: " + users.length + "\n" +108 "📄 صفحه " + page + " از " + totalPages + "\n\n" +109 "برای مشاهده پرونده هر فرد، روی دکمه او بزن.",110 reply_markup: {111 inline_keyboard: keyboard112 }113});