tarunpoonia905/OfcDevShopBotPublic · Bot Template
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
commands/_buy_hack.js
javascript · 195 lines
1/**#command2name: /buy_hack3answer: 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(/^\/buy_hack_cat\s/.test(__cb)||__cb==="/back"){if(!b.style)b.style=(__cb==="/back"?"danger":"success");}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 — Category selection (entry point of the whole buy flow)19// ✅ NEW: Shop / Store Product ab seedha product list nahi, pehle "ANDROID ROOT" /20// "ANDROID NON ROOT" category selection dikhata hai. Product asli list21// /buy_hack_cat me dikhti hai (category ke hisaab se filter hokar).22// ✅ BUG FIX: reply_markup pehle raw object bheja jaa raha tha (JSON.stringify23// missing) — is wajah se product buttons kabhi kabhi properly render/work24// nahi karte the, jisse poora buy flow shuru hone se pehle hi tootta tha.25// ✅ BUG FIX: photo-message (jaise Profile) se yahan aane par editMessageText26// fail ho jaata — ab photo detect hoke delete + fresh send hota hai.27// ✅ Premium redesign.28// =========================================================29 30try {31 // 🧹 NAV-CLEAN: koi bhi navigation button (Back/Menu/Shop/Admin) dabane par purane32 // "agla message save karo" wale pending states hata do, taaki aalatu-faalatu33 // purana wizard/upload agle message ko na nigal le. Sirf button-press par chalta hai.34 try {35 if (typeof request !== "undefined" && request && (request.id || request.callback_query)) {36 ["shopmedia_step","wz_state","aiadd_state","set_payment_zapupi_step","set_zapupi_mobile_step",37 "extkey_url_step","extkey_apikey_step","extkey_master_step"].forEach(function (k) {38 try { if (User.getProperty(k)) User.setProperty(k, null, "json"); } catch (e0) {}39 });40 try { if (User.getProperty("ai_chat_active")) User.setProperty("ai_chat_active", false, "boolean"); } catch (e1) {}41 }42 } catch (navE) {}43 var rawData = Bot.getProperty("stored_products");44 var productList = [];45 46 if (Array.isArray(rawData)) {47 productList = rawData;48 } else if (typeof rawData === "string") {49 try {50 productList = JSON.parse(rawData);51 if (!Array.isArray(productList)) { productList = []; }52 } catch (e) {53 productList = [];54 }55 }56 57 // 🧹 Purana auto-bana default "Drip Client (Non Root)" (bina plans wala) ek baar hata do.58 var __before = productList.length;59 productList = productList.filter(function (it) {60 return !(it && String(it.name || "").trim().toLowerCase() === "drip client (non root)" && (!it.plans || it.plans.length === 0));61 });62 if (productList.length !== __before) { Bot.setProperty("stored_products", productList, "json"); }63 64 var chatId = chat.chatid;65 var firstName = user && user.first_name ? user.first_name : "User";66 67 var categoryButtons = [68 [69 {70 text: " 𝙉𝙊𝙉 𝙍𝙊𝙊𝙏",71 callback_data: "/buy_hack_cat nonroot",72 style: "primary",73 icon_custom_emoji_id: "5467752521839690487"74 }75 ],76 [77 {78 text: "𝘼𝙉𝘿𝙍𝙊𝙄𝘿 𝙍𝙊𝙊𝙏",79 callback_data: "/buy_hack_cat root",80 style: "primary",81 icon_custom_emoji_id: "6287397479243585292"82 }83 ],84 [85 {86 text: "𝙊𝙄𝙎/𝙄𝙋𝙃𝙊𝙉𝙀",87 callback_data: "/buy_hack_cat iphone",88 style: "primary",89 icon_custom_emoji_id: "5332823031859389246"90 }91 ],92 [93 {94 text: "𝘽𝙖𝙘𝙠 𝙩𝙤 𝙈𝙚𝙣𝙪",95 callback_data: "/back",96 style: "danger",97 icon_custom_emoji_id: "6100379527840538820"98 }99 ]100 ];101 102 // 🎨 NEW STYLE (admin: /admin -> "Buttons: NEW"): rangeen (green/blue) + 2 side-by-side. OFF = upar wala purana CLASSIC layout.103 if (Bot.getProperty("ui_btn_new") === true) {104 categoryButtons = [105 [106 { text: "𝙉𝙊𝙉 𝙍𝙊𝙊𝙏", callback_data: "/buy_hack_cat nonroot", style: "primary", icon_custom_emoji_id: "5467752521839690487" },107 { text: "𝘼𝙉𝘿𝙍𝙊𝙄𝘿 𝙍𝙊𝙊𝙏", callback_data: "/buy_hack_cat root", style: "primary", icon_custom_emoji_id: "6287397479243585292" }108 ],109 [110 { text: "𝙊𝙄𝙎/𝙄𝙋𝙃𝙊𝙉𝙀", callback_data: "/buy_hack_cat iphone", style: "primary", icon_custom_emoji_id: "5332823031859389246" }111 ],112 [113 { text: "𝘽𝙖𝙘𝙠 𝙩𝙤 𝙈𝙚𝙣𝙪", callback_data: "/back", icon_custom_emoji_id: "6100379527840538820" }114 ]115 ];116 }117 118 var storeName = String(Bot.getProperty("store_name") || "DEV SHOP BOT");119 storeName = storeName.replace(/&/g, "&").replace(/</g, "<").replace(/>/g, ">");120 121 var storeText =122 "<blockquote><b><tg-emoji emoji-id='6091170843080007327'>🛒</tg-emoji> PRODUCT STORE — SHOP</b></blockquote>\n" +123 "━━━━━━━━━━━━━━━━━━━━━\n\n" +124 "<tg-emoji emoji-id='5192820781775594328'>📱</tg-emoji> <b>Select your device type:</b>\n" +125 "━━━━━━━━━━━━━━━━━━━━━";126 127 // 📝 NEW TEXT STYLE (admin: /admin -> "Text: NEW"). OFF = purana storeText.128 if (false) {129 var __bal = "";130 try { var __b = Number(Libs.ResourcesLib.userRes("balance").value()); if (!isNaN(__b)) __bal = "💎 Wallet ➤ <b>₹" + __b.toFixed(2) + "</b>\n"; } catch (eB) {}131 var __fn = String(firstName).replace(/&/g, "&").replace(/</g, "<").replace(/>/g, ">");132 storeText =133 "<blockquote><b>👑 " + storeName + " 👑</b></blockquote>\n" +134 "✦━━━━━━━━━━━━━━━━━━━━✦\n" +135 "🚀 Welcome ➤ <b>" + __fn + "</b>\n" +136 "🆔 Account ID ➤ <code>" + chatId + "</code>\n" +137 __bal +138 "✦━━━━━━━━━━━━━━━━━━━━✦\n" +139 "👇 <i>Apna panel choose karo</i>";140 }141 142 var replyMarkupStr = JSON.stringify({ inline_keyboard: categoryButtons });143 144 // 🎬 Welcome GIF / MP4 — admin: /admin → "🎬 Shop Welcome GIF/Video"145 var welcomeMedia = Bot.getProperty("shop_welcome_media");146 if (typeof welcomeMedia === "string") { try { welcomeMedia = JSON.parse(welcomeMedia); } catch (eWm) { welcomeMedia = null; } }147 // 🎞 Animation 2: ON ho aur set ho to wahi chalega; OFF ho to upar wala normal (Animation 1) hi chalega.148 if (Bot.getProperty("shop_welcome_anim2_on") === true) {149 var welcomeMedia2 = Bot.getProperty("shop_welcome_media2");150 if (typeof welcomeMedia2 === "string") { try { welcomeMedia2 = JSON.parse(welcomeMedia2); } catch (eWm2) { welcomeMedia2 = null; } }151 if (welcomeMedia2 && welcomeMedia2.file_id && (welcomeMedia2.type === "animation" || welcomeMedia2.type === "video")) {152 welcomeMedia = welcomeMedia2;153 }154 }155 var hasWelcome = !!(welcomeMedia && welcomeMedia.file_id && (welcomeMedia.type === "animation" || welcomeMedia.type === "video"));156 // Telegram caption limit = 1024; is screen ka text chhota hai, phir bhi guard.157 if (hasWelcome && String(storeText).replace(/<[^>]*>/g, "").length > 1000) { hasWelcome = false; }158 159 var srcMsg = (request && request.message) ? request.message : null;160 var srcMid = (srcMsg && srcMsg.message_id) ? Number(srcMsg.message_id) : null;161 var srcIsMedia = !!(srcMsg && (srcMsg.photo || srcMsg.video || srcMsg.animation || srcMsg.document));162 163 if (hasWelcome) {164 // Media-wala screen: naya media message bhejo, purana (text ya media) message delete.165 var mediaPayload = { chat_id: chatId, caption: storeText, parse_mode: "HTML", reply_markup: replyMarkupStr };166 if (welcomeMedia.type === "animation") {167 mediaPayload.animation = String(welcomeMedia.file_id);168 Api.sendAnimation(mediaPayload);169 } else {170 mediaPayload.video = String(welcomeMedia.file_id);171 mediaPayload.supports_streaming = true;172 Api.sendVideo(mediaPayload);173 }174 if (srcMid) { try { Api.deleteMessage({ chat_id: chatId, message_id: srcMid }); } catch (e) {} }175 } else if (srcMid && !srcIsMedia) {176 Api.editMessageText({177 chat_id: chatId,178 message_id: srcMid,179 text: storeText,180 parse_mode: "HTML",181 reply_markup: replyMarkupStr182 });183 } else {184 // photo / video / GIF message se aaye -> text edit nahi ho sakta: delete + fresh send185 if (srcMid) { try { Api.deleteMessage({ chat_id: chatId, message_id: srcMid }); } catch (e) {} }186 Api.sendMessage({ chat_id: chatId, text: storeText, parse_mode: "HTML", reply_markup: replyMarkupStr });187 }188 189 if (request && request.id) {190 try { Api.answerCallbackQuery({ callback_query_id: request.id }); } catch (e) {}191 }192 193} catch (err) {194 Bot.sendMessage("⚠️ Shop Menu Error: " + err.message, { parse_mode: "HTML" });195}