ashoksarande3/ASHOK_HACK_STORE_BOTPublic ยท Bot Template
AIThis bot operates as a commercial storefront for selling Free Fire game hacks and cheats via UPI QR code payments. It features a dynamic pricing system with separate normal and reseller prices, product plans with flexible durations (days, hours, minutes), and a reseller program requiring a one-time upgrade fee. The bot handles payment verification through QR code generation and expiry tracking, user verification via Telegram contact sharing, and admin tools for stock management, plan creation, and ownership transfer. It includes a balance system, maintenance mode, and Telegram Stars payment fallback. The codebase uses TeleBotHost's TBL JavaScript APIs (Bot, Api, HTTP, db properties, Libs) for all logic.
commands/_set_discount.js
javascript ยท 99 lines
1/**#command2name: /set_discount3answer: 4keyboard: 5parse_mode: markdown6aliases: 7allow_only_group: false8need_reply: false9is_web: 010#command**/11 12// =========================================================13// ๐ธ ADMIN/CO-ADMIN โ Auto-Discount System (no coupon code needed)14// Usage:15// /set_discount global | 10 โ 10% off EVERYTHING16// /set_discount PRODUCT NAME | all | 15 โ 15% off entire product (all plans)17// /set_discount PRODUCT NAME | 1d | 20 โ 20% off just that one plan18// /set_discount PRODUCT NAME | 1d | remove โ removes that specific discount19// Most SPECIFIC discount wins (plan > product > global). If the user also20// applies a coupon, the coupon takes priority over an auto-discount.21// =========================================================22 23try {24 var ownerId = Bot.getProperty("owner_id") || "8660373585";25 var isCoAdmin = Bot.getProperty("co_admin_" + String(chat.chatid));26 if (String(chat.chatid) !== ownerId && !isCoAdmin) {27 Bot.sendMessage("โ Restricted command!");28 return;29 }30 31 if (!params || params.trim() === "") {32 Bot.sendMessage(33 "โ ๏ธ <b>Format:</b>\n" +34 "<code>/set_discount global | 10</code> (sab par 10%)\n" +35 "<code>/set_discount PRODUCT NAME | all | 15</code> (pure product par)\n" +36 "<code>/set_discount PRODUCT NAME | 1d | 20</code> (sirf 1 Day plan par)\n" +37 "<code>/set_discount PRODUCT NAME | 1d | remove</code> (hata do)",38 { parse_mode: "HTML" }39 );40 return;41 }42 43 var parts = params.split("|").map(function (p) { return p.trim(); });44 45 if (parts[0].toLowerCase() === "global") {46 var pct = parts[1];47 if (!pct || pct.toLowerCase() === "remove") {48 Bot.setProperty("auto_discount_global", null, "number");49 Bot.sendMessage("โ
Global discount hata diya gaya.", { parse_mode: "HTML" });50 return;51 }52 var pctVal = parseFloat(pct);53 if (isNaN(pctVal) || pctVal <= 0 || pctVal > 100) { Bot.sendMessage("โ Valid % chahiye (1-100)."); return; }54 Bot.setProperty("auto_discount_global", pctVal, "number");55 Bot.sendMessage("โ
<b>Global Discount set:</b> -" + pctVal + "% (sabhi products/plans par apply hoga)", { parse_mode: "HTML" });56 return;57 }58 59 if (parts.length < 3) {60 Bot.sendMessage("โ ๏ธ Format: <code>/set_discount PRODUCT NAME | DURATION | PERCENT</code>", { parse_mode: "HTML" });61 return;62 }63 64 var prodNameUpper = parts[0].toUpperCase();65 var scopeKey;66 if (parts[1].toLowerCase() === "all") {67 scopeKey = "ALL";68 } else {69 var durMatch = parts[1].toLowerCase().match(/^([0-9]+(?:\.[0-9]+)?)\s*(h|hr|hrs|hour|hours|m|min|mins|minute|minutes|d|day|days)?$/);70 var dVal = durMatch ? durMatch[1] : parts[1].replace(/[^0-9.]/g, "");71 var uRaw = durMatch ? (durMatch[2] || "d") : "d";72 var uNorm = /^h/.test(uRaw) ? "HOUR" : /^m/.test(uRaw) ? "MINUTE" : "DAY";73 scopeKey = dVal + "_" + uNorm;74 }75 var pctOrRemove = parts[2];76 77 var propKey = "auto_discount_" + prodNameUpper + "_" + scopeKey;78 79 if (pctOrRemove.toLowerCase() === "remove") {80 Bot.setProperty(propKey, null, "number");81 Bot.sendMessage("โ
Discount hata diya gaya: <code>" + parts[0] + " (" + parts[1] + ")</code>", { parse_mode: "HTML" });82 return;83 }84 85 var pctVal2 = parseFloat(pctOrRemove);86 if (isNaN(pctVal2) || pctVal2 <= 0 || pctVal2 > 100) { Bot.sendMessage("โ Valid % chahiye (1-100)."); return; }87 88 Bot.setProperty(propKey, pctVal2, "number");89 Bot.sendMessage(90 "<blockquote>โ
<b>Discount Set!</b></blockquote>\n\n" +91 "๐ฆ <b>Product:</b> " + parts[0] + "\n" +92 "โณ <b>Scope:</b> " + (scopeKey === "ALL" ? "Entire Product (all plans)" : parts[1]) + "\n" +93 "๐ธ <b>Discount:</b> -" + pctVal2 + "%",94 { parse_mode: "HTML" }95 );96 97} catch (err) {98 Bot.sendMessage("โ ๏ธ Error: " + err.message);99}