CREATORS/OnecreatorsbotPublic · Bot Template

ProfileTelegram

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
Back to folder

commands/_members.js

javascript · 113 lines

Raw
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});