tarunpoonia905/OfcDevShopBotPublic · Bot Template

ProfileTelegram

AIDEV SHOP appears to be a Telegram automation bot. Commands include /confirm_delete_stock, /addstock_id, /extkey_menu, /partner_api, /apidelete, /buy_hack_cat, /admin_manage_products, /check_buy. Observed in code: messaging, keyboards, payments, libs, web, http, games.

Utilityutility
228 commands0 envUpdated 12d agoCreated Oct 18, 2026
Back to folder

commands/_buy_hack_cat.js

javascript · 145 lines

Raw
1/**#command2name: /buy_hack_cat3answer: 4keyboard: 5parse_mode: markdown6aliases: 7allow_only_group: false8need_reply: false9is_web: 010#command**/11 12/*#SIZE_V1*/try{(function(){var z=Bot.getProperty("ui_btn_size");var mx=z==="large"?1:(z==="medium"?2:0);if(!mx||Api.__sz)return;var NAV=/^[◀▶⬅➡«»‹›⏪⏩]|\d+\s*\/\s*\d+|prev|next|page/i;var T=function(m){try{var o=typeof m==="string"?JSON.parse(m):m;if(!o||!o.inline_keyboard)return m;var out=[],cnt=0;o.inline_keyboard.forEach(function(row){var nav=row.some(function(b){return NAV.test(String(b.text||"").trim());});if(row.length<=mx||nav){out.push(row);cnt+=row.length;return;}for(var i=0;i<row.length;i+=mx){var c=row.slice(i,i+mx);out.push(c);cnt+=c.length;}});if(cnt>100||out.length>100)return m;o.inline_keyboard=out;return typeof m==="string"?JSON.stringify(o):o;}catch(e){return m;}};["sendMessage","editMessageText","editMessageCaption","editMessageReplyMarkup","sendPhoto","sendVideo","sendAnimation","sendDocument"].forEach(function(n){var f=Api[n];if(typeof f!=="function")return;Api[n]=function(p){try{if(p&&p.reply_markup)p.reply_markup=T(p.reply_markup);}catch(e){}return f.apply(Api,arguments);};});Api.__sz=true;})();}catch(__szE){}13/*#ANIM_V1*/try{(function(){var M={party:"5046509860389126442",fire:"5104841245755180586",heart:"5159385139981059251",like:"5107584321108051014"};var a=Bot.getProperty("ui_anim");if(!a||!M[a]||Api.__an)return;var E=M[a];var OK=/PURCHASE SUCCESSFUL|PAYMENT SUCCESSFUL|Payment verified|CONGRATULATIONS/i;var priv=function(p){return p&&p.chat_id&&String(p.chat_id).charAt(0)!=="-";};["sendMessage","sendPhoto","sendVideo","sendAnimation"].forEach(function(n){var f=Api[n];if(typeof f!=="function")return;Api[n]=function(p){try{if(priv(p)&&!p.message_effect_id&&OK.test(String(p.text||p.caption||"")))p.message_effect_id=E;}catch(e){}return f.apply(Api,arguments);};});var fe=Api.editMessageText;if(typeof fe==="function"){Api.editMessageText=function(p){var r=fe.apply(Api,arguments);try{if(priv(p)&&OK.test(String(p.text||"")))Api.sendMessage({chat_id:p.chat_id,text:"🎉",message_effect_id:E});}catch(e){}return r;};}Api.__an=true;})();}catch(__anE){}14/*#PREMIUM_UI_V1*/try{(function(){if(Bot.getProperty("ui_premium")!==true||Api.__pm)return;var R=function(t,c){var s=(String(t||"")+" "+String(c||"")).toLowerCase();if(/back|cancel|close|delete|remove|clear|reject|stop|ban|exit/.test(s))return"danger";if(/pay|buy|confirm|verify|paid|add|deposit|shop|claim|yes|receive|wallet|download|update/.test(s))return"success";return"primary";};var T=function(m){try{var o=typeof m==="string"?JSON.parse(m):m;if(!o||!o.inline_keyboard)return m;o.inline_keyboard.forEach(function(row){row.forEach(function(b){if(b.copy_text||b.url||b.callback_data||b.web_app){var __cb=String(b.callback_data||"");if(/^\/viewprod\s|^\/buy_hack(?:\s|$)|^\/buy_hack_cat\s/.test(__cb)){delete b.style;}else{b.style=R(b.text,b.callback_data||b.url);if(!b.icon_custom_emoji_id&&b.text&&!/^[\u2600-\u27BF\uD83C-\uD83E]/.test(String(b.text).trim())&&!/^[✦✨💎]/.test(b.text))b.text="✦ "+b.text;}}});});return typeof m==="string"?JSON.stringify(o):o;}catch(e){return m;}};["sendMessage","editMessageText","editMessageCaption","editMessageReplyMarkup","sendPhoto","sendVideo","sendAnimation","sendDocument"].forEach(function(n){var f=Api[n];if(typeof f!=="function")return;Api[n]=function(p){try{if(p&&p.reply_markup)p.reply_markup=T(p.reply_markup);}catch(e){}return f.apply(Api,arguments);};});Api.__pm=true;})();}catch(__pmE){}15 16 17// =========================================================18// 🛒 SHOP MENU — Product listing filtered by category (Step 1.5)19// Called after user selects "ANDROID ROOT" or "ANDROID NON ROOT" from20// /buy_hack. Shows only products matching that category. Products added21// with category "both" (or no category set at all — legacy products)22// show up under BOTH root and nonroot listings.23// =========================================================24 25try {26  // 🧹 NAV-CLEAN: koi bhi navigation button (Back/Menu/Shop/Admin) dabane par purane27  // "agla message save karo" wale pending states hata do, taaki aalatu-faalatu28  // purana wizard/upload agle message ko na nigal le. Sirf button-press par chalta hai.29  try {30    if (typeof request !== "undefined" && request && (request.id || request.callback_query)) {31      ["shopmedia_step","wz_state","aiadd_state","set_payment_zapupi_step","set_zapupi_mobile_step",32       "extkey_url_step","extkey_apikey_step","extkey_master_step"].forEach(function (k) {33        try { if (User.getProperty(k)) User.setProperty(k, null, "json"); } catch (e0) {}34      });35      try { if (User.getProperty("ai_chat_active")) User.setProperty("ai_chat_active", false, "boolean"); } catch (e1) {}36    }37  } catch (navE) {}38  var rawData = Bot.getProperty("stored_products");39  var productList = [];40 41  if (Array.isArray(rawData)) {42    productList = rawData;43  } else if (typeof rawData === "string") {44    try {45      productList = JSON.parse(rawData);46      if (!Array.isArray(productList)) { productList = []; }47    } catch (e) {48      productList = [];49    }50  }51 52  var chatId = chat.chatid;53  var firstName = user && user.first_name ? user.first_name : "User";54 55  // Category param — "root" or "nonroot"56  var category = params ? params.trim().toLowerCase() : "";57  if (category === "") {58    var cbData = request && request.callback_query ? request.callback_query.data : "";59    category = cbData.replace("/buy_hack_cat ", "").replace("buy_hack_cat ", "").trim().toLowerCase();60  }61  if (category !== "root" && category !== "nonroot" && category !== "iphone") { category = "nonroot"; }62 63  var categoryLabel = (category === "root") ? "ANDROID ROOT" : (category === "iphone") ? "iPHONE" : "ANDROID NON ROOT";64 65  var productButtons = [];66 67  for (var i = 0; i < productList.length; i++) {68    var item = productList[i];69    if (!item) { continue; }70 71    // Legacy products (no category field) ya "both" wale — dono categories me dikhte hain.72    var itemCategory = item.category ? String(item.category).toLowerCase() : "both";73    if (itemCategory !== "both" && itemCategory !== category) { continue; }74 75    var itemName = item.name ? String(item.name) : "Product " + (i + 1);76    var itemEmoji = item.emoji ? String(item.emoji) : "5226656353744862682";77 78    // 🎨 PANEL BUTTON COLOUR79    // LIVE = green button, MAINTENANCE = red button.80    // No round status dots are shown; the panel custom emoji is preserved.81    var itemMaintKey = "panel_maintenance_" +82      String(item.id || item.name || i).toUpperCase().replace(/[^A-Z0-9_-]/g, "_");83    var itemUnderMaintenance = Bot.getProperty(itemMaintKey) === true;84 85    var itemButton = {86      // Full button colour: LIVE = green, MAINTENANCE = red.87      // Do NOT show round 🟢/🔴 status dots; keep the panel's own emoji.88      text: itemName,89      callback_data: "/viewprod " + i,90      style: itemUnderMaintenance ? "danger" : "success"91    };92 93    // Always show the hack's own custom emoji ID that was supplied in94    // /addproduct — including while the panel is under maintenance.95    if (itemEmoji) {96      itemButton.icon_custom_emoji_id = itemEmoji;97    }98 99    productButtons.push([itemButton]);100  }101 102  var storeName = String(Bot.getProperty("store_name") || "DEV SHOP BOT");103  storeName = storeName.replace(/&/g, "&amp;").replace(/</g, "&lt;").replace(/>/g, "&gt;");104 105  var storeText =106    "<blockquote><b><tg-emoji emoji-id='6091170843080007327'>🛒</tg-emoji> PRODUCT STORE — SHOP</b></blockquote>\n" +107    "━━━━━━━━━━━━━━━━━━━━━\n\n" +108    "<tg-emoji emoji-id='6312181703989269871'>🤖</tg-emoji> <b>" + categoryLabel + "</b>\n" +109    "<tg-emoji emoji-id='6312181703989269871'>📦</tg-emoji> <b>Choose a product:</b>\n" +110    "━━━━━━━━━━━━━━━━━━━━━";111 112  productButtons.push([113    {114      text: "Back", style: "danger",115      callback_data: "/buy_hack",116      icon_custom_emoji_id: "5893163582194978381"117    }118  ]);119 120  var replyMarkupStr = JSON.stringify({ inline_keyboard: productButtons });121 122  if (request && request.message && request.message.message_id) {123    if (request.message.photo || request.message.video || request.message.animation || request.message.document) {124      try { Api.deleteMessage({ chat_id: chatId, message_id: request.message.message_id }); } catch (e) {}125      Api.sendMessage({ chat_id: chatId, text: storeText, parse_mode: "HTML", reply_markup: replyMarkupStr });126    } else {127      Api.editMessageText({128        chat_id: chatId,129        message_id: request.message.message_id,130        text: storeText,131        parse_mode: "HTML",132        reply_markup: replyMarkupStr133      });134    }135  } else {136    Api.sendMessage({ chat_id: chatId, text: storeText, parse_mode: "HTML", reply_markup: replyMarkupStr });137  }138 139  if (request && request.id) {140    try { Api.answerCallbackQuery({ callback_query_id: request.id }); } catch (e) {}141  }142 143} catch (err) {144  Bot.sendMessage("⚠️ Shop Menu Error: " + err.message, { parse_mode: "HTML" });145}
commands/_buy_hack_cat.js · tarunpoonia905/OfcDevShopBot · TeleDevs