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

javascript · 125 lines

Raw
1/**#command2name: /freepoints3answer: 4keyboard: 5parse_mode: markdown6aliases: 7allow_only_group: false8need_reply: false9is_web: 010#command**/11 12function __esc(v){return String(v==null?"":v).replace(/&/g,"&amp;").replace(/</g,"&lt;").replace(/>/g,"&gt;");}13var __u=(typeof update!=="undefined"&&update)?update:null;14var __cb=(__u&&__u.callback_query)?__u.callback_query:null;15var __cbm=(__cb&&__cb.message)?__cb.message:null;16try{if(typeof request!=="undefined"&&request&&__cb){if(__cb.message)request.message=__cb.message;if(!request.id&&__cb.id)request.id=__cb.id;}}catch(__ne){}17function __uiSend(t,o){18 o=o||{};var cid=(typeof chat!=="undefined"&&chat)?chat.chatid:null;19 var mk=o.reply_markup;if(mk&&typeof mk!=="string"){try{mk=JSON.stringify(mk);}catch(e1){}}20 var mid=(__cbm&&__cbm.message_id)?Number(__cbm.message_id):0;21 if(!mid){try{mid=Number(User.getProperty("main_menu_message_id")||User.getProperty("pending_menu_message_id")||0);}catch(e2){mid=0;}}22 t=String(t==null?"":t);23 if(mid&&cid){24  try{25   if(__cbm&&(__cbm.photo||__cbm.video||__cbm.document||__cbm.animation))Api.editMessageCaption({chat_id:cid,message_id:mid,caption:t,parse_mode:o.parse_mode,reply_markup:mk});26   else Api.editMessageText({chat_id:cid,message_id:mid,text:t,parse_mode:o.parse_mode,reply_markup:mk});27   try{User.setProperty("main_menu_message_id",String(mid),"string");User.setProperty("pending_menu_message_id",String(mid),"string");}catch(e3){}28   return true;29  }catch(e4){if(String(e4).toLowerCase().indexOf("not modified")>=0)return true;if(__cb)return false;}30 }31 if(__cb)return false;32 try{var s=Api.sendMessage({chat_id:cid,text:t,parse_mode:o.parse_mode,reply_markup:mk});if(s&&s.message_id){User.setProperty("main_menu_message_id",String(s.message_id),"string");User.setProperty("pending_menu_message_id",String(s.message_id),"string");}return true;}catch(e5){return false;}33}34function __ack(){try{if(__cb&&__cb.id)Api.answerCallbackQuery({callback_query_id:String(__cb.id)});}catch(e6){}}35function __alert(t){try{if(__cb&&__cb.id)Api.answerCallbackQuery({callback_query_id:String(__cb.id),text:String(t),show_alert:true});}catch(e7){}}36function __ptsGet(u){var v=Number(Bot.getProperty("points_"+String(u))||0);return isFinite(v)?v:0;}37function __ptsSet(u,v){if(!isFinite(v)||v<0)v=0;Bot.setProperty("points_"+String(u),Number(v),"number");return Number(v);}38function __refPoints(){var v=Number(Bot.getProperty("ref_points"));return (isFinite(v)&&v>=0)?v:10;}39function __fjList(){var c=Bot.getProperty("fj_channels")||[];return Array.isArray(c)?c:[];}40function __fjMissing(uid){var l=__fjList(),o=[];for(var i=0;i<l.length;i++){var ok=true;try{var r=Api.getChatMember({chat_id:String(l[i].id),user_id:String(uid)});var st=r?String(r.status||(r.result&&r.result.status)||""):"";if(st)ok=(st==="member"||st==="administrator"||st==="creator");}catch(e8){ok=true;}if(!ok)o.push(l[i]);}return o;}41function __fjScreen(ms){var kb=[];for(var i=0;i<ms.length;i++)kb.push([{text:"\ud83d\udce2 "+String(ms[i].title||"Channel"),url:String(ms[i].url)}]);kb.push([{text:"\u2705 Check Subscription",callback_data:"/fjcheck"}]);__uiSend("\ud83d\udd12 <b>ACCESS LOCKED</b>\n\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\n\n\u27a1 You must join our channel(s) to use this bot.\n\u27a1 Join all of them, then tap <b>Check Subscription</b>.",{parse_mode:"HTML",reply_markup:{inline_keyboard:kb}});}42function __awardRefPoints(uid){try{uid=String(uid);var ref=Bot.getProperty("referred_by_"+uid);if(!ref)return;ref=String(ref);if(ref===uid)return;if(Bot.getProperty("ref_points_paid_"+uid)===true)return;var rp=__refPoints();Bot.setProperty("ref_points_paid_"+uid,true,"boolean");if(rp<=0)return;var nb=__ptsSet(ref,__ptsGet(ref)+rp);Bot.setProperty("ref_points_total_"+ref,Number(Bot.getProperty("ref_points_total_"+ref)||0)+rp,"number");try{Api.sendMessage({chat_id:ref,parse_mode:"HTML",text:"\ud83c\udf89 <b>NEW REFERRAL VERIFIED</b>\n\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\n\u27a1 Reward: <b>+"+rp+" points</b>\n\u27a1 Balance: <b>"+nb+" points</b>",reply_markup:JSON.stringify({inline_keyboard:[[{text:"\ud83d\udc8e Free Points",callback_data:"/freepoints"}]]})});}catch(e9){}}catch(e10){}}43function __pointPrice(p,pl){var v=Number(Bot.getProperty("point_price_"+p+"_"+pl));return (isFinite(v)&&v>0)?v:0;}44function __takePointKey(pr,pl,p,l){try{var n=String(pr.name||"").trim().toUpperCase(),d=String(pl.days),un=String(pl.unit||"day");var ks=["manual_keys_"+n+"_"+d+"_"+un,"stock_"+p+"_"+l];if(un==="day")ks.push("manual_keys_"+n+"_"+d);for(var i=0;i<ks.length;i++){var a=Bot.getProperty(ks[i]);if(typeof a==="string"){try{a=JSON.parse(a);}catch(e11){a=a.split(/\r?\n/).filter(Boolean);}}if(Array.isArray(a)&&a.length){var k=String(a.shift());for(var j=0;j<ks.length;j++)Bot.setProperty(ks[j],a,"json");return k;}}}catch(e12){}return null;}45try{var __bu=String(user.telegramid);if(Bot.getProperty("banned_"+__bu)===true&&__bu!==String(Bot.getProperty("owner_id")||"8225479428")){__alert("\ud83d\udeab Your account has been suspended.");return;}}catch(e13){}46try {47var uid=String(user.telegramid);48var a=String(params||"").trim().split(/\s+/);49var mode=a[0]||"";50if(mode==="do"){51  var p=Number(a[1]),l=Number(a[2]);52  var ms=__fjMissing(uid);53  if(ms.length){__alert("\ud83d\udd12 Join our channel(s) first.");__fjScreen(ms);return;}54  __ack();55  var prods=Bot.getProperty("stored_products")||[];if(!Array.isArray(prods))prods=[];56  var pr=prods[p],pl=(pr&&Array.isArray(pr.plans))?pr.plans[l]:null;57  if(!pr||!pl){__uiSend("\u274c <b>Product or plan not found.</b>",{parse_mode:"HTML"});return;}58  var price=__pointPrice(p,l);59  if(price<=0){__uiSend("\u274c <b>This plan cannot be redeemed with points.</b>",{parse_mode:"HTML"});return;}60  var bal=__ptsGet(uid);61  if(bal<price){__uiSend("\u274c <b>NOT ENOUGH POINTS</b>\n\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\n\u27a1 Required: <b>"+price+"</b>\n\u27a1 You have: <b>"+bal+"</b>\n\u27a1 Missing: <b>"+(price-bal)+"</b>\n\n\ud83d\udc65 Invite friends to earn more points.",{parse_mode:"HTML",reply_markup:{inline_keyboard:[[{text:"\ud83d\udc65 Invite & Earn",callback_data:"/freepoints"}],[{text:"\ud83d\udd19 Back",callback_data:"/freepoints p "+p}]]}});return;}62  var lk="redeem_lock_"+uid;63  if(Bot.getProperty(lk)===true){__alert("\u23f3 Your request is already being processed.");return;}64  Bot.setProperty(lk,true,"boolean");65  try{66    prods=Bot.getProperty("stored_products")||[];pr=prods[p];pl=(pr&&Array.isArray(pr.plans))?pr.plans[l]:null;67    var st=pl?Number(pl.stock_count||0):0;68    if(!pl||st<=0){Bot.setProperty(lk,false,"boolean");__uiSend("\u274c <b>This plan just went out of stock.</b>",{parse_mode:"HTML",reply_markup:{inline_keyboard:[[{text:"\ud83d\udd19 Back",callback_data:"/freepoints p "+p}]]}});return;}69    pl.stock_count=st-1;prods[p]=pr;Bot.setProperty("stored_products",prods,"json");70    __ptsSet(uid,__ptsGet(uid)-price);71    var dur=String(pl.durationDisplay||(pl.days+" Days"));72    var key=__takePointKey(pr,pl,p,l);73    var oid="ORD_"+Date.now()+"_"+Math.floor(Math.random()*10000);74    var nm=((user.first_name||"")+(user.last_name?" "+user.last_name:"")).trim()||"User";75    var un=user.username?String(user.username):"None";76    Bot.setProperty("order_"+oid,{id:oid,user_id:uid,user_name:nm,username:un,product_name:String(pr.name),product_index:p,plan_index:l,duration:dur,amount:0,points_paid:price,paid_with:"points",status:key?"delivered":"paid_waiting_manual_delivery",key:key||"",created_at:new Date().toISOString()},"json");77    var mo=Bot.getProperty("user_order_ids_"+uid)||[];if(!Array.isArray(mo))mo=[];mo.push(oid);if(mo.length>100)mo=mo.slice(-100);Bot.setProperty("user_order_ids_"+uid,mo,"json");78    Bot.setProperty("points_redeem_count",Number(Bot.getProperty("points_redeem_count")||0)+1,"number");79    Bot.setProperty("points_spent_total",Number(Bot.getProperty("points_spent_total")||0)+price,"number");80    Bot.setProperty(lk,false,"boolean");81    if(key){82      __uiSend("\u2705 <b>KEY DELIVERED</b>\n\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\n\ud83c\udfae <b>Product:</b> "+__esc(pr.name)+"\n\u23f3 <b>Duration:</b> "+__esc(dur)+"\n\ud83d\udd11 <b>Key:</b> <code>"+__esc(key)+"</code>\n\ud83d\udc8e <b>Spent:</b> "+price+" points\n\ud83d\udcb0 <b>Balance:</b> "+__ptsGet(uid)+" points\n\ud83e\uddfe <code>"+oid+"</code>",{parse_mode:"HTML",reply_markup:{inline_keyboard:[[{text:"\ud83c\udf81 Redeem Again",callback_data:"/freepoints redeem"}],[{text:"\ud83c\udfe0 Main Menu",callback_data:"/back"}]]}});83    }else{84      var pd=Bot.getProperty("pending_admin_orders")||[];if(!Array.isArray(pd))pd=[];if(pd.indexOf(oid)<0)pd.push(oid);Bot.setProperty("pending_admin_orders",pd,"json");85      __uiSend("\u2705 <b>REDEEM SUCCESSFUL</b>\n\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\n\ud83c\udfae <b>Product:</b> "+__esc(pr.name)+"\n\u23f3 <b>Duration:</b> "+__esc(dur)+"\n\ud83d\udc8e <b>Spent:</b> "+price+" points\n\ud83e\uddfe <code>"+oid+"</code>\n\n\u23f3 No key was in the auto-stock, so an administrator will send it shortly.",{parse_mode:"HTML",reply_markup:{inline_keyboard:[[{text:"\ud83e\uddfe My Orders",callback_data:"/orders"}],[{text:"\ud83c\udfe0 Main Menu",callback_data:"/back"}]]}});86    }87    try{Api.sendMessage({chat_id:String(Bot.getProperty("owner_id")||"8225479428"),parse_mode:"HTML",text:"\ud83d\udc8e <b>[ POINTS REDEEM ]</b>\n\n\ud83d\uded2 "+__esc(pr.name)+"\n\ud83d\uddd3 "+__esc(dur)+"\n\ud83d\udc8e Points: "+price+"\n\ud83d\udc64 "+__esc(nm)+" ("+un+")\n\ud83c\udd94 <code>"+uid+"</code>\n\ud83d\udd11 "+(key?"auto-delivered":"\u26a0 MANUAL DELIVERY NEEDED")+"\n\ud83d\udce6 Remaining stock: "+Number(pl.stock_count||0)+"\n\ud83e\uddfe <code>"+oid+"</code>",reply_markup:key?undefined:JSON.stringify({inline_keyboard:[[{text:"\ud83d\udd11 Send Key",callback_data:"/sendorderkey "+oid}]]})});}catch(e14){}88  }catch(e15){Bot.setProperty(lk,false,"boolean");__uiSend("\u26a0\ufe0f Redeem failed: "+e15.message,{parse_mode:"HTML"});}89  return;90}91__ack();92if(mode==="p"){93  var pi=Number(a[1]);94  var ps=Bot.getProperty("stored_products")||[];if(!Array.isArray(ps))ps=[];95  var pp=ps[pi];96  if(!pp||!Array.isArray(pp.plans)){__uiSend("\u274c <b>Product not found.</b>",{parse_mode:"HTML",reply_markup:{inline_keyboard:[[{text:"\ud83d\udd19 Back",callback_data:"/freepoints redeem"}]]}});return;}97  var tx="\ud83c\udfae <b>"+__esc(pp.name)+"</b>\n\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\n\u27a1 <b>Your balance:</b> "+__ptsGet(uid)+" points\n\n";98  var kb=[],n=0;99  for(var x=0;x<pp.plans.length;x++){100    var pv=__pointPrice(pi,x);if(pv<=0)continue;101    var pn=pp.plans[x],du=String(pn.durationDisplay||(pn.days+" Days")),sc=Number(pn.stock_count||0);n++;102    tx+="\u27a1 <b>"+__esc(du)+"</b> \u2014 "+pv+" pts | stock: "+sc+"\n";103    kb.push([{text:(sc>0?"\ud83d\udd11 ":"\u274c ")+du+" \u2014 "+pv+" pts",callback_data:"/freepoints do "+pi+" "+x}]);104  }105  if(!n)tx+="\u274c No point plans for this product.\n";106  kb.push([{text:"\ud83d\udd19 Back",callback_data:"/freepoints redeem"}]);107  __uiSend(tx,{parse_mode:"HTML",reply_markup:{inline_keyboard:kb}});108  return;109}110if(mode==="redeem"){111  var ps2=Bot.getProperty("stored_products")||[];if(!Array.isArray(ps2))ps2=[];112  var kb2=[],sh=0;113  for(var y=0;y<ps2.length;y++){114    var p2=ps2[y];if(!p2||!Array.isArray(p2.plans))continue;115    var has=false;for(var z=0;z<p2.plans.length;z++){if(__pointPrice(y,z)>0){has=true;break;}}116    if(!has)continue;sh++;117    kb2.push([{text:"\ud83c\udfae "+String(p2.name),callback_data:"/freepoints p "+y}]);118  }119  kb2.push([{text:"\ud83d\udd19 Free Points",callback_data:"/freepoints"}]);120  __uiSend("\ud83c\udf81 <b>POINTS \u2192 KEYS</b>\n\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\n\n\u27a1 <b>Your balance:</b> "+__ptsGet(uid)+" points\n\n"+(sh?"\u27a1 Pick a product to see its point plans.":"\u274c No product can be redeemed with points yet."),{parse_mode:"HTML",reply_markup:{inline_keyboard:kb2}});121  return;122}123var link="https://t.me/"+String(Bot.getProperty("bot_username")||"Yasin_Xit_Shop_bot")+"?start=ref_"+uid;124__uiSend("\ud83d\udc8e <b>FREE POINTS</b>\n\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\u2501\n\n\u27a1 <b>Balance:</b> "+__ptsGet(uid)+" points\n\u27a1 <b>Invited users:</b> "+Number(Bot.getProperty("referral_count_"+uid)||0)+"\n\u27a1 <b>Points earned:</b> "+Number(Bot.getProperty("ref_points_total_"+uid)||0)+"\n\n\ud83c\udf81 <b>HOW IT WORKS</b>\n\u27a1 Share your link below\n\u27a1 Your friend joins the channels & verifies\n\u27a1 You get <b>+"+__refPoints()+" points</b> instantly\n\u27a1 Exchange your points for premium keys\n\n\ud83d\udd17 <b>Your referral link:</b>\n<code>"+__esc(link)+"</code>\n\n\u26a0 Self-invites and repeated accounts are never rewarded.",{parse_mode:"HTML",reply_markup:{inline_keyboard:[[{text:"\ud83c\udf81 Redeem Key",callback_data:"/freepoints redeem"}],[{text:"\ud83d\udce4 Share Link",url:"https://t.me/share/url?url="+link+"&text=Get%20premium%20game%20keys%20for%20free"}],[{text:"\ud83c\udf81 Referral Cash",callback_data:"/referral"}],[{text:"\ud83d\udd19 Main Menu",callback_data:"/back"}]]}});125} catch(eFP) { __uiSend("\u26a0\ufe0f Free Points error: "+eFP.message); }