yaainnnxitstore/YASIN_XIT_BOTPublic · Bot Template

ProfileTelegram

AIYASIN XIT FREE KEY appears to be a Telegram automation bot. Commands include /menu, /addfund, /confirm_buyitem, /rembal, /sendorderkey_input, /removeproduct, /add_reseller, /addkey. Observed in code: messaging, keyboards, payments, games, libs, web.

Utilityutility
140 commands0 envUpdated 1mo agoCreated Sep 11, 2026
Back to folder

commands/_set_discount.js

javascript · 137 lines

Raw
1/**#command2name: /set_discount3answer: 4keyboard: 5parse_mode: markdown6aliases: 7allow_only_group: false8need_reply: false9is_web: 010#command**/11 12var __swfUpdate = (typeof update !== "undefined" && update) ? update : null;13var __swfCb = (__swfUpdate && __swfUpdate.callback_query) ? __swfUpdate.callback_query : null;14var __swfCbMsg = (__swfCb && __swfCb.message) ? __swfCb.message : null;15var __swfMsgId = __swfCbMsg && __swfCbMsg.message_id ? Number(__swfCbMsg.message_id) : 0;16var __swfCbId = __swfCb && __swfCb.id ? String(__swfCb.id) : "";17try {18  if (typeof request !== "undefined" && request && __swfCb) {19    if (__swfCb.message) request.message = __swfCb.message;20    if (!request.id && __swfCb.id) request.id = __swfCb.id;21  }22} catch(__swf_norm_err) {}23function __swfEditMessage(a) {24  a = a || {};25  var mid = Number(a.message_id || __swfMsgId || 0);26  var cid = a.chat_id || (typeof chat !== "undefined" && chat ? (chat.id || chat.chatid) : null);27  if (!mid || !cid) throw new Error("Callback message ID not found");28  var markup = a.reply_markup;29  if (typeof markup === "string") { try { markup = JSON.parse(markup); } catch(_) {} }30  var base = {chat_id:cid,message_id:mid,parse_mode:a.parse_mode,reply_markup:markup};31  var cm = __swfCbMsg;32  if (cm && (cm.photo || cm.video || cm.document || cm.audio || cm.animation)) {33    return Api.editMessageCaption({chat_id:cid,message_id:mid,caption:String(a.text == null ? "" : a.text),parse_mode:a.parse_mode,reply_markup:markup});34  }35  return Api.editMessageText({chat_id:cid,message_id:mid,text:String(a.text == null ? "" : a.text),parse_mode:a.parse_mode,reply_markup:markup});36}37function __uiSend(text, opts) {38  opts = opts || {};39  var req = (typeof request !== "undefined" && request) ? request : null;40  var chatId = (typeof chat !== "undefined" && chat && chat.chatid) ? chat.chatid : null;41  var isCallback = !!__swfCb;42  var mid = 0;43  if (isCallback && update.callback_query.message && update.callback_query.message.message_id) mid = Number(update.callback_query.message.message_id);44  if (!mid) { try { mid = Number(User.getProperty("pending_menu_message_id") || User.getProperty("main_menu_message_id") || User.getProperty("support_message_id") || 0); } catch(e0) { mid = 0; } }45  var markup = opts.reply_markup;46  if (markup && typeof markup !== "string") { try { markup = JSON.stringify(markup); } catch(e1) {} }47  var textValue = String(text == null ? "" : text);48  if (mid && chatId) {49    try {50      __swfEditMessage({chat_id:chatId,message_id:mid,text:textValue,parse_mode:opts.parse_mode,reply_markup:markup});51      try { User.setProperty("main_menu_message_id",String(mid),"string"); User.setProperty("pending_menu_message_id",String(mid),"string"); } catch(se) {}52      return true;53    } catch(e2) {54      var s=String(e2).toLowerCase();55      if(s.indexOf("message is not modified")>=0 || s.indexOf("not modified")>=0) return true;56      if(isCallback && update.callback_query.message && update.callback_query.message.photo) {57        try { Api.editMessageCaption({chat_id:chatId,message_id:mid,caption:textValue,parse_mode:opts.parse_mode,reply_markup:markup}); return true; } catch(e3) {58          var s3=String(e3).toLowerCase(); if(s3.indexOf("not modified")>=0) return true;59        }60      }61      if(isCallback) { try { Api.answerCallbackQuery({callback_query_id:String(update.callback_query.id),text:"⚠️ Could not update the screen.",show_alert:true}); } catch(e4) {} return false; }62    }63  }64  if (isCallback) { try { Api.answerCallbackQuery({callback_query_id:String(update.callback_query.id),text:"⚠️ Screen message not found.",show_alert:true}); } catch(e5) {} return false; }65  try {66    var sent=Api.sendMessage({chat_id:chatId,text:textValue,parse_mode:opts.parse_mode,reply_markup:markup});67    try { if(sent&&sent.message_id){User.setProperty("pending_menu_message_id",String(sent.message_id),"string");User.setProperty("main_menu_message_id",String(sent.message_id),"string");} } catch(e6) {}68    return true;69  } catch(e7) { return false; }70}71try {72  var ownerId = Bot.getProperty("owner_id") || "8225479428";73  var isCoAdmin = Bot.getProperty("co_admin_" + String(chat.chatid));74  if (String(chat.chatid) !== ownerId && !isCoAdmin) {75    __uiSend("❌ Restricted command!");76    return;77  }78  if (!params || params.trim() === "") {79    __uiSend(80      "⚠️ <b>Format:</b>\n" +81      "<code>/set_discount global | 10</code>  (10% on everything)\n" +82      "<code>/set_discount PRODUCT NAME | all | 15</code>  (on the whole product)\n" +83      "<code>/set_discount PRODUCT NAME | 1d | 20</code>  (on the 1 Day plan only)\n" +84      "<code>/set_discount PRODUCT NAME | 1d | remove</code>  (to remove)",85      { parse_mode: "HTML" }86    );87    return;88  }89  var parts = params.split("|").map(function (p) { return p.trim(); });90  if (parts[0].toLowerCase() === "global") {91    var pct = parts[1];92    if (!pct || pct.toLowerCase() === "remove") {93      Bot.setProperty("auto_discount_global", null, "number");94      __uiSend("✅ Global discount removed.", { parse_mode: "HTML" });95      return;96    }97    var pctVal = parseFloat(pct);98    if (isNaN(pctVal) || pctVal <= 0 || pctVal > 100) { __uiSend("❌ A valid percentage is required (1-100)."); return; }99    Bot.setProperty("auto_discount_global", pctVal, "number");100    __uiSend("✅ <b>Global Discount set:</b> -" + pctVal + "% (applies to all products and plans)", { parse_mode: "HTML" });101    return;102  }103  if (parts.length < 3) {104    __uiSend("⚠️ Format: <code>/set_discount PRODUCT NAME | DURATION | PERCENT</code>", { parse_mode: "HTML" });105    return;106  }107  var prodNameUpper = parts[0].toUpperCase();108  var scopeKey;109  if (parts[1].toLowerCase() === "all") {110    scopeKey = "ALL";111  } else {112    var durMatch = parts[1].toLowerCase().match(/^([0-9]+(?:\.[0-9]+)?)\s*(h|hr|hrs|hour|hours|m|min|mins|minute|minutes|d|day|days)?$/);113    var dVal = durMatch ? durMatch[1] : parts[1].replace(/[^0-9.]/g, "");114    var uRaw = durMatch ? (durMatch[2] || "d") : "d";115    var uNorm = /^h/.test(uRaw) ? "HOUR" : /^m/.test(uRaw) ? "MINUTE" : "DAY";116    scopeKey = dVal + "_" + uNorm;117  }118  var pctOrRemove = parts[2];119  var propKey = "auto_discount_" + prodNameUpper + "_" + scopeKey;120  if (pctOrRemove.toLowerCase() === "remove") {121    Bot.setProperty(propKey, null, "number");122    __uiSend("✅ Discount removed: <code>" + parts[0] + " (" + parts[1] + ")</code>", { parse_mode: "HTML" });123    return;124  }125  var pctVal2 = parseFloat(pctOrRemove);126  if (isNaN(pctVal2) || pctVal2 <= 0 || pctVal2 > 100) { __uiSend("❌ A valid percentage is required (1-100)."); return; }127  Bot.setProperty(propKey, pctVal2, "number");128  __uiSend(129    "<blockquote>✅ <b>Discount Set!</b></blockquote>\n\n" +130    "📦 <b>Product:</b> " + parts[0] + "\n" +131    "⏳ <b>Scope:</b> " + (scopeKey === "ALL" ? "Entire Product (all plans)" : parts[1]) + "\n" +132    "💸 <b>Discount:</b> -" + pctVal2 + "%",133    { parse_mode: "HTML" }134  );135} catch (err) {136  __uiSend("⚠️ Error: " + err.message);137}