mansuriamaan803/SANJEEVFFSTORE_botPublic · Bot Template

AIThis bot is a commerce platform for selling digital products, primarily focused on FreeFire accounts and related services. It provides admin tools for managing products, categories, stock, reseller roles, and a balance system for user payments. Users can browse products, apply coupons, and check their balance through an interactive interface with premium emojis and inline keyboards.

Commercecommercestoreproductsresellerbalancecoupon
ProfileTelegram
102 commands0 envUpdated 12d agoCreated Aug 26, 2026
Back to folder

commands/_addkey.js

javascript · 102 lines

Raw
1/**#command2name: /addkey3answer: 4keyboard: 5parse_mode: markdown6aliases: 7allow_only_group: false8need_reply: false9is_web: 010#command**/11 12try {13  var adminId = "8963001413";14  if (String(chat.chatid) !== adminId) {15    Bot.sendMessage("❌ You are not the admin!");16    return;17  }18 19  if (!params) {20    Bot.sendMessage("⚠️ *Format:* `/addkey PRODUCT NAME | DAYS | KEY1`\n`KEY2`\n`KEY3` (Line-by-line)", { parse_mode: "Markdown" });21    return;22  }23 24  var lines = params.split("\n");25  var firstLineParts = lines[0].split("|");26 27  if (firstLineParts.length < 3) {28    Bot.sendMessage("⚠️ *Galat Format!*\nPehli line me `Product Name | Days | Key` hona chahiye.", { parse_mode: "Markdown" });29    return;30  }31 32  // 1. Inputs ko clean aur trim karna33  var pName = firstLineParts[0].trim().toLowerCase();34  var pDays = firstLineParts[1].trim(); 35  36  var pDaysClean = pDays.includes("_Day") ? pDays : pDays + "_Day";37  var pDaysNumOnly = pDays.replace("_Day", "").trim(); 38 39  var keysToAdd = [];40  keysToAdd.push(firstLineParts[2].trim());41 42  for (var l = 1; l < lines.length; l++) {43    var currentLineKey = lines[l].trim();44    if (currentLineKey !== "") {45      keysToAdd.push(currentLineKey);46    }47  }48 49  // 2. Products fetching50  var productList = Bot.getProperty("stored_products") || [];51  var prodIdx = -1;52  var planIdx = -1;53  var exactProdName = firstLineParts[0].trim(); // Fallback name54 55  // Soft loop matching (Case insensitive)56  for (var i = 0; i < productList.length; i++) {57    if (productList[i].name.trim().toLowerCase() === pName) {58      prodIdx = i;59      exactProdName = productList[i].name.trim();60      break;61    }62  }63 64  // FORCE CORRECTION: Agar index loop se na mile to handle anyway65  if (prodIdx === -1) {66    Bot.sendMessage("⚠️ Product *" + exactProdName + "* lists me nahi mila, par system dynamic key store bypass generate kar raha hai...", { parse_mode: "Markdown" });67  } else {68    var plans = productList[prodIdx].plans || [];69    for (var j = 0; j < plans.length; j++) {70      if (String(plans[j].days).trim() === pDaysNumOnly) {71        planIdx = j;72        break;73      }74    }75  }76 77  // 3. Dual-pipeline saving mechanics78  var stockKeyText = "stock_" + exactProdName + "_" + pDaysClean;79  var currentStock = Bot.getProperty(stockKeyText) || [];80  81  // Array merging82  var updatedStock = currentStock.concat(keysToAdd);83  Bot.setProperty(stockKeyText, updatedStock, "json");84 85  // Agar structured index match hua hai to us pipeline ko bhi update karein86  if (prodIdx !== -1 && planIdx !== -1) {87    var stockKeyIndex = "stock_" + prodIdx + "_" + planIdx;88    Bot.setProperty(stockKeyIndex, updatedStock, "json");89  }90 91  // 4. GUARANTEED SUCCESS CONFIRMATION MESSAGE92  var successMsg = "<blockquote><b>📦 STOCK UPDATED SUCCESSFULLY</b>\n\n" +93                   "• <b>Product:</b> <code>" + exactProdName + "</code>\n" +94                   "• <b>Plan:</b> <code>" + pDaysClean + "</code>\n" +95                   "• <b>Added Keys:</b> <code>" + keysToAdd.length + " Keys</code>\n" +96                   "• <b>Total Stock Now:</b> <code>" + updatedStock.length + " Keys available</code></blockquote>";97 98  Bot.sendMessage(successMsg, { parse_mode: "HTML" });99 100} catch (err) {101  Bot.sendMessage("⚠️ System Error: " + err.message);102}