455 commands2 envUpdated 6h agoCreated Aug 26, 2026
commands/cancel_order.js
javascript · 58 lines
1/**#command2name: cancel_order3answer: 4keyboard: 5parse_mode: markdown6aliases: 7allow_only_group: false8need_reply: false9is_web: 010#command**/11 12try { Api.answerCallbackQuery({}); } catch(e) {}13 14let uid = "" + user.telegramid;15let cb = update.callback_query.data;16let chClean = cb.replace("cancel_order_", "").trim().toLowerCase();17 18let rawTasks = await db.global.get("active_channel_tasks");19let taskList = [];20try { taskList = typeof rawTasks === 'string' ? JSON.parse(rawTasks) : (rawTasks || []); } catch(e) { taskList = []; }21 22let foundIndex = -1;23let refundMembers = 0;24let channelName = "";25 26for (let i = 0; i < taskList.length; i++) {27 if (taskList[i].ownerUid === uid && taskList[i].channel.replace("@", "").toLowerCase() === chClean) {28 foundIndex = i;29 refundMembers = taskList[i].remaining;30 channelName = taskList[i].channel;31 break;32 }33}34 35if (foundIndex === -1) {36 Bot.sendMessage("⚠️ آگهی مورد نظر یافت نشد یا قبلاً تکمیل/لغو شده است.");37 return;38}39 40// محاسبه سکههای بازگشتی (هر ممبر باقیمانده = ۲ سکه)41let refundCoins = refundMembers * 2;42 43// حذف آگهی از صف44taskList.splice(foundIndex, 1);45await db.global.set("active_channel_tasks", JSON.stringify(taskList));46 47// عودت سکهها به حساب کاربر48let curCoins = parseInt(await db.global.get("m_coins_" + uid) || 0);49await db.global.set("m_coins_" + uid, curCoins + refundCoins);50 51Bot.sendMessage(52 "✅ **آگهی کانال " + channelName + " با موفقیت لغو شد!**\n\n" +53 "💰 تعداد **" + refundCoins + " سکه ممبرگیر** (بابت " + refundMembers + " ممبر باقیمانده) به حسابتان برگشت داده شد.\n" +54 "👛 موجودی جدید شما: **" + (curCoins + refundCoins) + " سکه**",55 { parse_mode: "Markdown" }56);57 58Bot.runCommand("my_orders");