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/_mykey.js

javascript · 124 lines

Raw
1/**#command2name: /mykey3answer: 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){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// 🔑 MY KEYS — user ki SAARI purchased keys dikhata hai (koi limit / truncation nahi)19// v63: pehle 3800 characters ke baad list kat jaati thi ("list truncated").20//      Ab keys pages me dikhti hain (8 keys/page, ◀ ▶ buttons) aur agar ek page21//      bhi Telegram ki 4096 limit se bada ho to extra messages me poora bhej diya jaata hai.22//      "Download All Keys" button se poori list .txt file me aati hai (1 key = 1 line).23// Callback: /mykey  ya  /mykey <page>24// =========================================================25 26try {27    var PER_PAGE = 8;28    var chatId = chat.chatid;29    var esc = function (s) { return String(s === undefined || s === null ? "" : s).replace(/&/g, "&amp;").replace(/</g, "&lt;").replace(/>/g, "&gt;"); };30 31    var userKeys = User.getProperty("my_purchased_keys");32    if (!Array.isArray(userKeys)) userKeys = [];33 34    var total = userKeys.length;35    var queryId = request ? (request.id || (request.callback_query && request.callback_query.id)) : null;36    var pages = Math.max(1, Math.ceil(total / PER_PAGE));37    var page = parseInt(String(params || "").trim(), 10);38    if (!(page >= 1)) page = 1;39    if (page > pages) page = pages;40 41    var parts = [];       // message chunks (each <= ~3500 chars)42    var keyboard = { inline_keyboard: [] };43 44    if (total === 0) {45        parts.push("<blockquote>" +46            "<tg-emoji emoji-id='6192822213486321961'>🗣</tg-emoji> <b>No keys found!</b>\n" +47            "<tg-emoji emoji-id='5866053971960929280'>💎</tg-emoji> You haven't purchased anything yet." +48            "</blockquote>");49        keyboard.inline_keyboard = [[50            { text: "Shop Now", callback_data: "/buy_hack", style: "success", icon_custom_emoji_id: "5866053971960929280" },51            { text: "Back", callback_data: "/back", style: "danger", icon_custom_emoji_id: "5893163582194978381" }52        ]];53    } else {54        // Newest purchase first. Page 1 = latest keys.55        var endIdx = total - (page - 1) * PER_PAGE;           // exclusive56        var startIdx = Math.max(0, endIdx - PER_PAGE);        // inclusive57 58        var header = "<b>📋 Your Keys</b>  <i>(Total: " + total + " | Page " + page + "/" + pages + ")</i>\n\n";59        var cur = header;60        for (var i = endIdx - 1; i >= startIdx; i--) {61            var keyData = userKeys[i] || {};62            var pName = keyData.productName || keyData.product || "N/A";63            var pPrice = keyData.cost || keyData.price || "0";64            var pKey = keyData.key || "No Key Found";65            var pDays = keyData.days || "N/A";66            var pDate = keyData.date || "N/A";67 68            var block = "<blockquote>" +69                "<b>#" + (i + 1) + "</b>  <tg-emoji emoji-id='6192822213486321961'>🗣</tg-emoji> <b>Product Name:</b> " + esc(pName) + "\n" +70                "<tg-emoji emoji-id='6266967801580231067'>⏳</tg-emoji> <b>Days:</b> " + esc(pDays) + "\n" +71                "<tg-emoji emoji-id='6176966310920983412'>➡️</tg-emoji> <b>Key:</b> <code>" + esc(pKey) + "</code>\n" +72                "<tg-emoji emoji-id='6267068789146260253'>🛒</tg-emoji> <b>Price:</b> ₹" + esc(pPrice) + "\n" +73                "<tg-emoji emoji-id='5866053971960929280'>📅</tg-emoji> <b>Date:</b> " + esc(pDate) +74                "</blockquote>\n";75 76            // Telegram limit ~4096: pehle se bhara chunk bhej do, naya chunk shuru karo (kuch bhi drop nahi hota)77            if ((cur + block).length > 3500 && cur !== header && cur.length > 0) {78                parts.push(cur);79                cur = "";80            }81            cur += block;82        }83        if (cur) parts.push(cur);84 85        var nav = [];86        if (page < pages) nav.push({ text: "◀ Older", callback_data: "/mykey " + (page + 1), style: "primary" });87        if (page > 1)     nav.push({ text: "Newer ▶", callback_data: "/mykey " + (page - 1), style: "primary" });88        if (nav.length) keyboard.inline_keyboard.push(nav);89 90        keyboard.inline_keyboard.push([91            { text: "📥 Download All Keys (TXT)", callback_data: "/history_receipt", style: "success", icon_custom_emoji_id: "6100170496077204999" }92        ]);93        keyboard.inline_keyboard.push([94            { text: "Back To Menu", callback_data: "/back", style: "danger", icon_custom_emoji_id: "5893163582194978381" }95        ]);96    }97 98    var markup = JSON.stringify(keyboard);99    var isPhotoMsg = !!(request && request.message && request.message.photo);100    var canEdit = !!(request && request.message && request.message.message_id) && !isPhotoMsg;101 102    if (isPhotoMsg) {103        try { Api.deleteMessage({ chat_id: chatId, message_id: request.message.message_id }); } catch (delErr) {}104    }105 106    for (var pi = 0; pi < parts.length; pi++) {107        var last = (pi === parts.length - 1);108        var payload = { chat_id: chatId, text: parts[pi], parse_mode: "HTML" };109        if (last) payload.reply_markup = markup;110 111        if (pi === 0 && canEdit) {112            payload.message_id = request.message.message_id;113            // Agar chunk >1 hai to edit me markup mat lagao (last chunk me lagega)114            Api.editMessageText(payload);115        } else {116            Api.sendMessage(payload);117        }118    }119 120    if (queryId) { try { Api.answerCallbackQuery({ callback_query_id: String(queryId) }); } catch (e) {} }121 122} catch (err) {123    try { Bot.sendMessage("⚠️ My Keys Error: " + err.message, { parse_mode: "HTML" }); } catch (e) {}124}
commands/_mykey.js · tarunpoonia905/OfcDevShopBot · TeleDevs