ayushyadav7970824760/goldensellingstore_botPublic · Bot Template

AIThis Telegram store bot lets customers browse digital products and plans, apply coupons, add funds via UPI, and receive purchased keys. It includes a full admin panel for managing products, reordering items, setting reseller prices, viewing and removing key stock, configuring UPI payment details and update links, and checking user balances. Co-admins and resellers are supported, and support tickets are forwarded to the admin.

Commercedigital_storeadmin_panelupi_paymentsresellercouponskey_stock
ProfileTelegram
146 commands0 envUpdated 2d agoCreated Sep 5, 2026
Back to folder

commands/_addbal_all.js

javascript · 122 lines

Raw
1/**#command2name: /addbal_all3answer: 4keyboard: 5parse_mode: markdown6aliases: 7allow_only_group: false8need_reply: false9is_web: 010#command**/11 12// ✅ FIXED (v3): dynamic owner_id + co-admin check (same fix as /addbal).13let admin_id = Bot.getProperty("owner_id") || "8477746023";14let requesterId = String(user.telegramid);15let isCoAdmin = Bot.getProperty("co_admin_" + requesterId);16 17if (requesterId === admin_id || isCoAdmin) {18 19    // ✅ FIXED: instantly ack the button press so it doesn't feel stuck/slow.20    if (request && request.id) {21        try {22            HTTP.post({23                url: "https://api.telegram.org/bot" + bot.token + "/answerCallbackQuery",24                body: { callback_query_id: request.id }25            });26        } catch (ackErr) {}27    }28 29    let params = (typeof message !== "undefined" && message) ? message.split(" ") : [];30    let data = params[1];31 32    // Agar amount na mila ho, toh prompt bhejo aur agla text message33    // auto-capture ho jaayega (see _start.js "MODULE 5").34    if (!data || isNaN(parseFloat(data.trim()))) {35        // ✅ FIXED: purane atke hue admin steps clear karo pehle36        var __allAdminSteps2 = ["addbal_step","addbalall_step","rembal_step","checkbal_step",37        "set_download_link_step","set_payment_upi_step","set_payment_binance_step",38        "set_dailygift_price_step","set_refer_earn_step","set_how_link_step",39        "set_proof_link_step","set_support_link_step","give_key_step",40        "set_sale_channel_step","set_menu_emoji_step","set_welcome_message_step",41        "add_product_step"];42        for (var __si2 = 0; __si2 < __allAdminSteps2.length; __si2++) { User.setProperty(__allAdminSteps2[__si2], null, "string"); }43        User.setProperty("addbalall_step", "waiting_input", "string");44        Bot.sendMessage(45            "<tg-emoji emoji-id='5409048419211682843'>💵</tg-emoji> <b>Add Balance To ALL Users</b>\n\n" +46            "<i>Kitna amount har user ko add karna hai, sirf number bhejein:</i>\n<code>amount</code>\n\n" +47            "<i>Example:</i> <code>50</code>",48            {parse_mode: "HTML"}49        );50        return;51    }52 53    let amountToAdd = parseFloat(data.trim());54 55    if (isNaN(amountToAdd) || amountToAdd <= 0) {56        Bot.sendMessage("❌ *Invalid Amount!*", {parse_mode: "Markdown"});57        return;58    }59 60    try {61        let userList = Bot.getProperty("all_users_list") || [];62        if (!Array.isArray(userList)) { userList = []; }63 64        if (userList.length === 0) {65            Bot.sendMessage("⚠️ <b>Database Empty:</b> Abhi tak koi bhi user register nahi hua hai.", {parse_mode: "HTML"});66            return;67        }68 69        Bot.sendMessage(70            "<tg-emoji emoji-id='6147936236125298267'>⏳</tg-emoji> <b>Adding ₹" + amountToAdd + " to " + userList.length + " users, please wait...</b>",71            {parse_mode: "HTML"}72        );73 74        let notificationText =75            "<blockquote>" +76            "<tg-emoji emoji-id='6192822213486321961'>🗣</tg-emoji> Admin Added: " + amountToAdd + "\n" +77            "<tg-emoji emoji-id='6266967801580231067'>💎</tg-emoji> Balance Credited!\n" +78            "<tg-emoji emoji-id='6267068789146260253'>💰</tg-emoji> Wallet Updated\n" +79            "<tg-emoji emoji-id='5866053971960929280'>🛒</tg-emoji> /start TO SHOP NOW" +80            "</blockquote>";81 82        let successCount = 0;83        let failCount = 0;84 85        for (let i = 0; i < userList.length; i++) {86            let targetUserId = userList[i];87            try {88                // Balance add karna89                let targetUserBalance = Libs.ResourcesLib.anotherUserRes("balance", targetUserId);90                targetUserBalance.add(amountToAdd);91                successCount++;92 93                // ✅ FIXED: raw HTTP.post ki jagah Api.sendMessage — zyada reliable delivery.94                try {95                    Api.sendMessage({96                        chat_id: targetUserId,97                        text: notificationText,98                        parse_mode: "HTML"99                    });100                } catch (notifyErr) {101                    // Notification fail hone se balance-add process nahi rukna chahiye102                }103            } catch (userErr) {104                failCount++;105            }106        }107 108        Bot.sendMessage(109            "✅ <b>Bulk Add Balance Complete!</b>\n\n" +110            "💰 <b>Amount per user:</b> ₹" + amountToAdd + "\n" +111            "👥 <b>Success:</b> " + successCount + "\n" +112            "⚠️ <b>Failed:</b> " + failCount,113            {parse_mode: "HTML"}114        );115 116    } catch (err) {117        Bot.sendMessage("⚠️ *Error:* " + err.message, {parse_mode: "Markdown"});118    }119 120} else {121    Bot.sendMessage("❌ You are not authorized to use this command.");122}