455 commands2 envUpdated 6h agoCreated Aug 26, 2026
commands/ffwin.js
javascript · 278 lines
1/**#command2name: ffwin3answer: 4keyboard: 5parse_mode: markdown6aliases: 7allow_only_group: false8need_reply: false9is_web: 010#command**/11 12/**#command13name: ffwin14answer: 15keyboard: 16parse_mode: 17aliases: 18allow_only_group: false19need_reply: false20is_web: 021#command**/22 23try {24var uid = "";25if (typeof user !== "undefined" && user) {26 if (user.telegramid) uid = String(user.telegramid);27 else if (user.id) uid = String(user.id);28}29if (!uid) return;30var ZU = 1000000;31var st = String((await db.global.get("await_ffw_" + uid)) || "");32var text = "";33if (typeof message !== "undefined" && message) {34 if (typeof message === "object") text = String(message.text || message.caption || "");35 else text = String(message);36}37text = String(text || "").trim();38var t2 = "";39var di = 0;40for (di = 0; di < text.length; di++) {41 var cc = text.charAt(di);42 var kk = "۰۱۲۳۴۵۶۷۸۹".indexOf(cc);43 if (kk >= 0) t2 = t2 + String(kk);44 else {45 kk = "٠١٢٣٤٥٦٧٨٩".indexOf(cc);46 if (kk >= 0) t2 = t2 + String(kk);47 else t2 = t2 + cc;48 }49}50text = t2.trim();51if (text === "لغو" || text === "cancel" || text === "🔴 لغو") {52 await db.global.set("await_ffw_" + uid, "");53 Bot.sendMessage("لغو شد");54 return;55}56if (!st) { Bot.sendMessage("اول از دیوار دکمه صفحه آگهی را بزن، بعد شماره."); return; }57 58var fid = "";59try {60 if (typeof message === "object" && message && message.photo) {61 if (message.photo.length) fid = String(message.photo[message.photo.length - 1].file_id || "");62 else if (message.photo.file_id) fid = String(message.photo.file_id);63 }64 if (!fid && typeof update !== "undefined" && update && update.message && update.message.photo) {65 var ph = update.message.photo;66 if (ph.length) fid = String(ph[ph.length - 1].file_id || "");67 }68} catch (eF) {}69 70var arr0 = [];71try { arr0 = JSON.parse(String((await db.global.get("ffw_list")) || "[]")); } catch (e0) { arr0 = []; }72if (!arr0 || typeof arr0.length !== "number") arr0 = [];73 74if (st === "see" || st === "ayes" || st === "aref" || st === "adel" || st === "buy") {75 var nn = parseInt(String(text).replace(/[^0-9]/g, "")) || 0;76 var shown = 0;77 var ix = -1;78 var j = 0;79 for (j = 0; j < arr0.length; j++) {80 if (!arr0[j]) continue;81 if (String(arr0[j].st || "sale") === "done") continue;82 shown = shown + 1;83 if (shown === nn) { ix = j; break; }84 }85 await db.global.set("await_ffw_" + uid, "");86 if (ix < 0) { Bot.sendMessage("این شماره نیست. از لیست دیوار شماره را بفرست."); return; }87 if (st === "buy") {88 await db.global.set("ffw_see_" + uid, ix);89 try { Bot.runCommand("ffwgo"); } catch (eBy) {}90 return;91 }92 if (st === "see") {93 await db.global.set("ffw_see_" + uid, ix);94 var uidB = "";95 try { if (user && user.id) uidB = String(user.id); } catch (eUb) {}96 var adP = arr0[ix];97 var stP = String(adP.st || "sale");98 if (stP !== "hold" && stP !== "wait" && stP !== "done") stP = "sale";99 var zcP = parseInt(adP.zc) || 0;100 var taxP0 = parseInt(await db.global.get("ffw_tax") || 10) || 10;101 var sellerP = String(adP.uid || "");102 var mineP = (sellerP === uid || (uidB && sellerP === uidB));103 var cap =104 "🛒 آگهی دیوار\n" +105 String(adP.title || "") + "\n" +106 "👤 اکانت: " + String(adP.nick || "-") + "\n" +107 "🎮 لول: " + String(adP.lvl || "-") + "\n" +108 "💎 قیمت: " + zcP + " ZC\n" +109 "💵 معادل: " + (zcP * 1000) + " هزار تومان\n" +110 "هر ۱ ZC = ۱۰۰۰ هزار تومان\n" +111 "مالیات فروش " + taxP0 + "٪ از فروشنده\n" +112 "وضعیت: " + (stP === "hold" ? "🔒 در امانت" : (stP === "wait" ? "🚩 گزارش" : "🟢 قابل خرید")) + "\n";113 if (mineP) cap = cap + "این آگهی مال خودته.\n";114 var dP = String(adP.desc || "").trim();115 if (dP) cap = cap + "\n" + dP.slice(0, 400);116 var rowsP = [];117 if (stP === "sale" && !mineP) rowsP.push([{ text: "💎 خرید امن", callback_data: "ffwgo" }]);118 if (stP === "hold" && (String(adP.buyer || "") === uid || (uidB && String(adP.buyer || "") === uidB))) {119 rowsP.push([{ text: "✅ تحویل گرفتم", callback_data: "ffwok" }]);120 rowsP.push([{ text: "🚩 کلاهبرداری", callback_data: "ffwno" }]);121 }122 if (sellerP && !mineP) rowsP.push([{ text: "💬 چت با فروشنده", url: "tg://user?id=" + sellerP }]);123 rowsP.push([{ text: "🛒 دیوار", callback_data: "ffwall" }, { text: "🏠 منو", callback_data: "/start" }]);124 var fidP = String(adP.file_id || "");125 if (fidP) {126 try { Api.sendPhoto({ chat_id: uid, photo: fidP, caption: cap.slice(0, 1020) }); } catch (ePp) {}127 }128 var btnT = "💎 خرید امن را از دکمه بزن.";129 if (mineP) btnT = "آگهی مال خودته.";130 if (stP === "hold") btnT = "این آگهی در امانت است.";131 Api.sendMessage({ text: btnT, reply_markup: { inline_keyboard: rowsP } });132 return;133 }134 var isBossT = (uid === "5861439682");135 var isAdT = isBossT || ((await db.global.get("rank_" + uid)) === "admin");136 if (!isAdT) return;137 var ad = arr0[ix];138 if (st === "adel") {139 if (String(ad.st) === "hold" || String(ad.st) === "wait") {140 Bot.sendMessage("امانت/گزارش را حذف نکن. اول استرداد یا تایید کن.");141 return;142 }143 var outD = [];144 var j2 = 0;145 for (j2 = 0; j2 < arr0.length; j2++) { if (j2 !== ix && arr0[j2]) outD.push(arr0[j2]); }146 await db.global.set("ffw_list", JSON.stringify(outD));147 Bot.sendMessage("✅ آگهی حذف شد");148 return;149 }150 if (String(ad.st) !== "hold" && String(ad.st) !== "wait") {151 Bot.sendMessage("این آگهی امانت نیست.");152 return;153 }154 var seller = String(ad.uid || "");155 var buyer = String(ad.buyer || "");156 var zc = parseInt(ad.zc) || 0;157 var need = zc * ZU;158 if (st === "aref") {159 var walB = parseInt(await db.global.get("wal_" + buyer) || 0) || 0;160 await db.global.set("wal_" + buyer, walB + need);161 ad.st = "sale";162 ad.buyer = "";163 arr0[ix] = ad;164 await db.global.set("ffw_list", JSON.stringify(arr0));165 Bot.sendMessage("↩️ " + zc + " ZC به خریدار برگشت. آگهی دوباره فروش است.");166 try { Api.sendMessage({ chat_id: buyer, text: "↩️ ادمین ZC دیوار را بهت برگرداند: +" + zc + " ZC" }); } catch (e1) {}167 try { Api.sendMessage({ chat_id: seller, text: "آگهیات دوباره روی دیوار آمد. معامله لغو شد." }); } catch (e2) {}168 return;169 }170 if (st === "ayes") {171 var taxP = parseInt(await db.global.get("ffw_tax") || 10) || 10;172 if (taxP < 0) taxP = 0;173 if (taxP > 50) taxP = 50;174 var taxZ = Math.floor(zc * taxP / 100);175 var sellZ = zc - taxZ;176 if (sellZ < 0) sellZ = 0;177 var addT = sellZ * ZU;178 var cashS = parseInt(await db.global.get("cash_" + seller) || 0) || 0;179 await db.global.set("cash_" + seller, cashS + addT);180 var pool = parseInt(await db.global.get("ffw_tax_pool") || 0) || 0;181 await db.global.set("ffw_tax_pool", pool + (taxZ * ZU));182 var bossW = parseInt(await db.global.get("wal_5861439682") || 0) || 0;183 await db.global.set("wal_5861439682", bossW + (taxZ * ZU));184 ad.st = "done";185 arr0[ix] = ad;186 await db.global.set("ffw_list", JSON.stringify(arr0));187 Bot.sendMessage("✅ پول به فروشنده: " + (sellZ * 1000) + " هزار تومان | مالیات " + taxZ + " ZC");188 try { Api.sendMessage({ chat_id: seller, text: "✅ ادمین معامله را تایید کرد. +" + addT + " تومان واقعی. /wd" }); } catch (e3) {}189 try { Api.sendMessage({ chat_id: buyer, text: "ادمین تحویل دیوار را تایید کرد." }); } catch (e4) {}190 return;191 }192}193 194if (st === "tax") {195 var isBossX = (uid === "5861439682");196 var isAdX = isBossX || ((await db.global.get("rank_" + uid)) === "admin");197 if (!isAdX) { await db.global.set("await_ffw_" + uid, ""); return; }198 var tx = parseInt(String(text).replace(/[^0-9]/g, "")) || 0;199 if (tx > 50) { Bot.sendMessage("حداکثر ۵۰٪"); return; }200 await db.global.set("ffw_tax", tx);201 await db.global.set("await_ffw_" + uid, "");202 Bot.sendMessage("✅ مالیات دیوار شد " + tx + "٪");203 return;204}205 206var dr = {};207try { dr = JSON.parse(String((await db.global.get("ffw_draft_" + uid)) || "{}")); } catch (eD) { dr = {}; }208 209if (st === "title") {210 if (text.length < 2) { Bot.sendMessage("عنوان کوتاه است"); return; }211 dr.title = text.slice(0, 60);212 await db.global.set("ffw_draft_" + uid, JSON.stringify(dr));213 await db.global.set("await_ffw_" + uid, "nick");214 Bot.sendMessage("اسم اکانت فریفایر را بفرست.");215 return;216}217if (st === "nick") {218 if (text.length < 2) { Bot.sendMessage("اسم کوتاه است"); return; }219 dr.nick = text.slice(0, 24);220 await db.global.set("ffw_draft_" + uid, JSON.stringify(dr));221 await db.global.set("await_ffw_" + uid, "lvl");222 Bot.sendMessage("لول اکانت را عدد بفرست.\nمثال: 45");223 return;224}225if (st === "lvl") {226 var lv = parseInt(String(text).replace(/[^0-9]/g, "")) || 0;227 if (lv < 1 || lv > 100) { Bot.sendMessage("لول بین ۱ تا ۱۰۰"); return; }228 dr.lvl = lv;229 await db.global.set("ffw_draft_" + uid, JSON.stringify(dr));230 await db.global.set("await_ffw_" + uid, "desc");231 Bot.sendMessage("توضیحات آگهی.\nاگر نیست: -");232 return;233}234if (st === "desc") {235 var ds = text;236 if (ds === "-") ds = "";237 dr.desc = ds.slice(0, 300);238 await db.global.set("ffw_draft_" + uid, JSON.stringify(dr));239 await db.global.set("await_ffw_" + uid, "photo");240 Bot.sendMessage("عکس آگهی را همینجا بفرست.\nاگر عکس نیست: تمام");241 return;242}243if (st === "photo") {244 if (fid) dr.file_id = fid;245 else if (text === "تمام" || text === "-" || text === ".") dr.file_id = "";246 else {247 Bot.sendMessage("عکس بفرست یا بنویس: تمام");248 return;249 }250 await db.global.set("ffw_draft_" + uid, JSON.stringify(dr));251 await db.global.set("await_ffw_" + uid, "price");252 Bot.sendMessage("قیمت به ZC (فقط عدد).\nمثال: 50\nهر ۱ ZC = ۱۰۰۰ هزار تومان\n۵۰ ZC = ۵۰٬۰۰۰ هزار تومان");253 return;254}255if (st === "price") {256 var zcP2 = parseInt(String(text).replace(/[^0-9]/g, "")) || 0;257 if (zcP2 < 1) { Bot.sendMessage("عدد ZC حداقل ۱"); return; }258 if (zcP2 > 100000) { Bot.sendMessage("خیلی زیاد"); return; }259 dr.zc = zcP2;260 dr.uid = uid;261 dr.st = "sale";262 dr.buyer = "";263 if (!dr.nick) dr.nick = "-";264 if (!dr.lvl) dr.lvl = 0;265 if (!dr.desc) dr.desc = "";266 if (!dr.file_id) dr.file_id = "";267 var arr = [];268 try { arr = JSON.parse(String((await db.global.get("ffw_list")) || "[]")); } catch (eA) { arr = []; }269 if (!arr || typeof arr.length !== "number") arr = [];270 if (arr.length > 80) arr = arr.slice(arr.length - 70);271 arr.push(dr);272 await db.global.set("ffw_list", JSON.stringify(arr));273 await db.global.set("await_ffw_" + uid, "");274 await db.global.set("ffw_draft_" + uid, "");275 Bot.sendMessage("✅ آگهی ثبت شد\n" + String(dr.title) + "\n👤 " + dr.nick + " | لول " + dr.lvl + "\n💎 " + dr.zc + " ZC = " + (dr.zc * 1000) + " هزار تومان\nتا خریدار تایید تحویل نکند پولت آزاد نمیشود.");276 return;277}278} catch (e) { Bot.sendMessage("خطا ffwin"); }