indrajitghosh20006/Igstore_01botPublic Β· Bot Template

ProfileTelegram

AIThe bot provides an admin interface for a digital store, allowing the owner or co‑admins to add balances, products, plans, and categories. It supports payment workflows via UPI and Binance Pay, automatically generating QR codes and handling manual approval of deposits. The code patches inline keyboards to use premium emoji icons and includes helper functions for user and bot properties. Overall, it serves as a commerce management tool for a Telegram-based storefront.

Commercestoreadminbalanceproductplancategory
170 commands0 envUpdated 7h agoCreated Oct 30, 2026
Back to folder

commands/_addbal_all.js

javascript Β· 155 lines

Raw
1/**#command2name: /addbal_all3answer: 4keyboard: 5parse_mode: markdown6aliases: 7allow_only_group: false8need_reply: false9is_web: 010#command**/11 12// PREMIUM BUTTON ICONS13(function(){14  try {15    if (!JSON.__premiumPatched) {16      var __origStringify = JSON.stringify;17      JSON.stringify = function(value, replacer, space) {18        try {19          if (value && value.inline_keyboard && Array.isArray(value.inline_keyboard)) {20            var premiumIds = [21              "6143444134125379822",22              "6091379307907652768",23              "6147534454819661264",24              "6147817325660741985",25              "6235683689292897318",26              "6102856637343600044"27            ];28            var rows = value.inline_keyboard.map(function(row, ri) {29              if (!Array.isArray(row)) return row;30              return row.map(function(btn, bi) {31                if (!btn || typeof btn !== "object") return btn;32                var copy = {};33                for (var k in btn) copy[k] = btn[k];34                if (!copy.icon_custom_emoji_id) copy.icon_custom_emoji_id = premiumIds[(ri + bi) % premiumIds.length];35                return copy;36              });37            });38            var cloned = {};39            for (var key in value) cloned[key] = value[key];40            cloned.inline_keyboard = rows;41            return __origStringify.call(JSON, cloned, replacer, space);42          }43        } catch (e) {}44        return __origStringify.call(JSON, value, replacer, space);45      };46      JSON.__premiumPatched = true;47    }48  } catch (e) {}49})();50 51 52 53// βœ… FIXED (v3): dynamic owner_id + co-admin check (same fix as /addbal).54let admin_id = Bot.getProperty("owner_id") || "7839151435";55let requesterId = String(user.telegramid);56let isCoAdmin = Bot.getProperty("co_admin_" + requesterId);57 58if (requesterId === admin_id || isCoAdmin) {59 60    // βœ… FIXED: instantly ack the button press so it doesn't feel stuck/slow.61    if (request && request.id) {62        try {63            HTTP.post({64                url: "https://api.telegram.org/bot" + bot.token + "/answerCallbackQuery",65                body: { callback_query_id: request.id }66            });67        } catch (ackErr) {}68    }69 70    let params = (typeof message !== "undefined" && message) ? message.split(" ") : [];71    let data = params[1];72 73    // Agar amount na mila ho, toh prompt bhejo aur agla text message74    // auto-capture ho jaayega (see _start.js "MODULE 5").75    if (!data || isNaN(parseFloat(data.trim()))) {76        User.setProperty("addbalall_step", "waiting_input", "string");77        Bot.sendMessage(78            "<tg-emoji emoji-id='5409048419211682843'>πŸ’΅</tg-emoji> <b>Add Balance To ALL Users</b>\n\n" +79            "<i>Kitna amount har user ko add karna hai, sirf number bhejein:</i>\n<code>amount</code>\n\n" +80            "<i>Example:</i> <code>50</code>",81            {parse_mode: "HTML"}82        );83        return;84    }85 86    let amountToAdd = parseFloat(data.trim());87 88    if (isNaN(amountToAdd) || amountToAdd <= 0) {89        Bot.sendMessage("❌ *Invalid Amount!*", {parse_mode: "Markdown"});90        return;91    }92 93    try {94        let userList = Bot.getProperty("all_users_list") || [];95        if (!Array.isArray(userList)) { userList = []; }96 97        if (userList.length === 0) {98            Bot.sendMessage("⚠️ <b>Database Empty:</b> Abhi tak koi bhi user register nahi hua hai.", {parse_mode: "HTML"});99            return;100        }101 102        Bot.sendMessage(103            "<tg-emoji emoji-id='6147936236125298267'>⏳</tg-emoji> <b>Adding β‚Ή" + amountToAdd + " to " + userList.length + " users, please wait...</b>",104            {parse_mode: "HTML"}105        );106 107        let notificationText =108            "<blockquote>" +109            "<tg-emoji emoji-id='6192822213486321961'>πŸ—£</tg-emoji> Admin Added: " + amountToAdd + "\n" +110            "<tg-emoji emoji-id='6266967801580231067'>πŸ’Ž</tg-emoji> Balance Credited!\n" +111            "<tg-emoji emoji-id='6267068789146260253'>πŸ’°</tg-emoji> Wallet Updated\n" +112            "<tg-emoji emoji-id='5866053971960929280'>πŸ›’</tg-emoji> /start TO SHOP NOW" +113            "</blockquote>";114 115        let successCount = 0;116        let failCount = 0;117 118        for (let i = 0; i < userList.length; i++) {119            let targetUserId = userList[i];120            try {121                // Balance add karna122                let targetUserBalance = Libs.ResourcesLib.anotherUserRes("balance", targetUserId);123                targetUserBalance.add(amountToAdd);124                successCount++;125 126                // βœ… FIXED: raw HTTP.post ki jagah Api.sendMessage β€” zyada reliable delivery.127                try {128                    Api.sendMessage({129                        chat_id: targetUserId,130                        text: notificationText,131                        parse_mode: "HTML"132                    });133                } catch (notifyErr) {134                    // Notification fail hone se balance-add process nahi rukna chahiye135                }136            } catch (userErr) {137                failCount++;138            }139        }140 141        Bot.sendMessage(142            "βœ… <b>Bulk Add Balance Complete!</b>\n\n" +143            "πŸ’° <b>Amount per user:</b> β‚Ή" + amountToAdd + "\n" +144            "πŸ‘₯ <b>Success:</b> " + successCount + "\n" +145            "⚠️ <b>Failed:</b> " + failCount,146            {parse_mode: "HTML"}147        );148 149    } catch (err) {150        Bot.sendMessage("⚠️ *Error:* " + err.message, {parse_mode: "Markdown"});151    }152 153} else {154    Bot.sendMessage("❌ You are not authorized to use this command.");155}