455 commands2 envUpdated 7h agoCreated Aug 26, 2026
commands/claim_task.js
javascript · 87 lines
1/**#command2name: claim_task3answer: 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;16 17// اگر تسک کانال اصلی باشد18if (cb === "claim_main_task") {19 let isMember = false;20 try {21 let res = await Api.getChatMember({ chat_id: "@ZorenixStudio", user_id: user.telegramid });22 if (res && res.ok && ["member", "administrator", "creator"].indexOf(res.result.status) !== -1) isMember = true;23 } catch(e) {}24 25 if (isMember) {26 await db.global.set("claimed_task_main_" + uid, true);27 let cur = parseInt(await db.global.get("m_coins_" + uid) || 50);28 await db.global.set("m_coins_" + uid, cur + 15);29 Bot.sendMessage("🎉 **عضویت در کانال استودیو تایید شد! +15 سکه به حسابتان اضافه شد.** (موجودی: " + (cur + 15) + " سکه)");30 Bot.runCommand("task_list");31 } else {32 Bot.sendMessage("❌ هنوز در کانال @ZorenixStudio عضو نشدهاید! ابتدا عضو شوید و سپس تایید را بزنید.");33 }34 return;35}36 37// اگر تسک کانال کاربران باشد (claim_user_task_ChannelName)38let chClean = cb.replace("claim_user_task_", "");39let targetChannel = "@" + chClean;40 41let alreadyClaimed = await db.global.get("claimed_task_" + chClean + "_" + uid);42if (alreadyClaimed) {43 Bot.sendMessage("⚠️ شما قبلاً پاداش عضویت در این کانال را دریافت کردهاید!");44 return;45}46 47let isMember = false;48try {49 let res = await Api.getChatMember({ chat_id: targetChannel, user_id: user.telegramid });50 if (res && res.ok && ["member", "administrator", "creator"].indexOf(res.result.status) !== -1) isMember = true;51} catch(e) {52 isMember = true; // در صورت عدم دسترسی ادمین ربات به کانال کاربر53}54 55if (isMember) {56 // ثبت پاداش برای کاربر57 await db.global.set("claimed_task_" + chClean + "_" + uid, true);58 let cur = parseInt(await db.global.get("m_coins_" + uid) || 50);59 await db.global.set("m_coins_" + uid, cur + 15);60 61 // کسر ۱ ممبر از سهمیه سفارش دهنده62 let rawTasks = await db.global.get("active_channel_tasks") || "[]";63 let taskList = [];64 try { taskList = JSON.parse(rawTasks); } catch(e) { taskList = []; }65 66 for (let i = 0; i < taskList.length; i++) {67 if (taskList[i].channel.replace("@", "").toLowerCase() === chClean.toLowerCase()) {68 taskList[i].remaining = taskList[i].remaining - 1;69 // اگر سهمیه تمام شد از لیست پاک کن70 if (taskList[i].remaining <= 0) {71 Api.sendMessage({72 chat_id: taskList[i].ownerUid,73 text: "🎉 **تبریک! تمام ممبرهای درخواستی کانال " + taskList[i].channel + " با موفقیت تکمیل شد.**"74 });75 taskList.splice(i, 1);76 }77 break;78 }79 }80 await db.global.set("active_channel_tasks", JSON.stringify(taskList));81 82 Bot.sendMessage("🎉 **عضویت تایید شد! +15 سکه ممبرگیر به حساب شما اضافه شد.**\nموجودی جدید شما: **" + (cur + 15) + " سکه**", { parse_mode: "Markdown" });83 Bot.runCommand("task_list");84 85} else {86 Bot.sendMessage("❌ هنوز در کانال " + targetChannel + " عضو نشدهاید! لطفاً ابتدا عضو شوید و سپس دکمه تایید را بزنید.");87}