Spaces:
Paused
Paused
| const { | |
| isAdmin, | |
| sleep, | |
| bot, | |
| addSpace, | |
| jidToNum, | |
| formatTime, | |
| parsedJid, | |
| getCommon, | |
| numToJid, | |
| // genButtonMessage, | |
| } = require('../lib/') | |
| bot( | |
| { | |
| pattern: 'kick ?(.*)', | |
| desc: 'Remove members from Group.', | |
| type: 'group', | |
| onlyGroup: true, | |
| }, | |
| async (message, match) => { | |
| const participants = await message.groupMetadata(message.jid) | |
| const isImAdmin = await isAdmin(participants, message.client.user.jid) | |
| if (!isImAdmin) return await message.send(`_I'm not admin._`) | |
| let user = message.mention[0] || message.reply_message.jid | |
| if (!user && match != 'all') return await message.send(`_Give me a user_`) | |
| const isUserAdmin = match != 'all' && (await isAdmin(participants, user)) | |
| if (isUserAdmin) return await message.send(`_User is admin._`) | |
| if (match == 'all') { | |
| user = participants.filter((member) => !member.admin == true).map(({ id }) => id) | |
| await message.send(`_kicking everyone(${user.length})_\n*Restart bot if u wanna stop.*`) | |
| await sleep(10 * 1000) | |
| } | |
| return await message.Kick(user) | |
| } | |
| ) | |
| bot( | |
| { | |
| pattern: 'add ?(.*)', | |
| desc: 'To add members', | |
| type: 'group', | |
| onlyGroup: true, | |
| }, | |
| async (message, match) => { | |
| await message.send('> dont add those not in contacts, chances of a ban is high.') | |
| const participants = await message.groupMetadata(message.jid) | |
| const isImAdmin = await isAdmin(participants, message.client.user.jid) | |
| if (!isImAdmin) return await message.send(`_I'm not admin._`) | |
| match = match || message.reply_message.jid | |
| if (!match) return await message.send('Example : add 91987654321') | |
| // if (!match.startsWith('@@')) { | |
| // match = jidToNum(match) | |
| // const button = await genButtonMessage( | |
| // [ | |
| // { id: `@@`, text: 'NO' }, | |
| // { id: `add @@${match}`, text: 'YES' }, | |
| // ], | |
| // `Your Number maybe banned, Do you want add @${match}`, | |
| // '' | |
| // ) | |
| // return await message.send( | |
| // button, | |
| // { contextInfo: { mentionedJid: [numToJid(match)] } }, | |
| // 'button' | |
| // ) | |
| // } | |
| await sleep(3000) | |
| match = jidToNum(match) | |
| const res = await message.Add(match) | |
| if (res == '403') return await message.send('_Failed, Invite sent_') | |
| else if (res && res != '200') return await message.send(res, { quoted: message.data }) | |
| } | |
| ) | |
| bot( | |
| { | |
| pattern: 'promote ?(.*)', | |
| desc: 'Give admin role.', | |
| type: 'group', | |
| onlyGroup: true, | |
| }, | |
| async (message, match) => { | |
| const participants = await message.groupMetadata(message.jid) | |
| const isImAdmin = await isAdmin(participants, message.client.user.jid) | |
| if (!isImAdmin) return await message.send(`_I'm not admin._`) | |
| const user = message.mention[0] || message.reply_message.jid | |
| if (!user) return await message.send(`_Give me a user._`) | |
| const isUserAdmin = await isAdmin(participants, user) | |
| if (isUserAdmin) return await message.send(`_User is already admin._`) | |
| return await message.Promote(user) | |
| } | |
| ) | |
| bot( | |
| { | |
| pattern: 'demote ?(.*)', | |
| desc: 'Remove admin role.', | |
| type: 'group', | |
| onlyGroup: true, | |
| }, | |
| async (message, match) => { | |
| const participants = await message.groupMetadata(message.jid) | |
| const isImAdmin = await isAdmin(participants, message.client.user.jid) | |
| if (!isImAdmin) return await message.send(`_I'm not admin._`) | |
| const user = message.mention[0] || message.reply_message.jid | |
| if (!user) return await message.send(`_Give me a user._`) | |
| const isUserAdmin = await isAdmin(participants, user) | |
| if (!isUserAdmin) return await message.send(`_User is not an admin._`) | |
| return await message.Demote(user) | |
| } | |
| ) | |
| bot( | |
| { | |
| pattern: 'invite ?(.*)', | |
| desc: 'Get Group invite', | |
| type: 'group', | |
| onlyGroup: true, | |
| }, | |
| async (message, match) => { | |
| const participants = await message.groupMetadata(message.jid) | |
| const isImAdmin = await isAdmin(participants, message.client.user.jid) | |
| if (!isImAdmin) return await message.send(`_I'm not admin._`) | |
| return await message.send(await message.inviteCode(message.jid)) | |
| } | |
| ) | |
| bot( | |
| { | |
| pattern: 'mute ?(.*)', | |
| desc: 'Makes Groups Admins Only.', | |
| type: 'group', | |
| onlyGroup: true, | |
| }, | |
| async (message, match) => { | |
| const participants = await message.groupMetadata(message.jid) | |
| const isImAdmin = await isAdmin(participants, message.client.user.jid) | |
| if (!isImAdmin) return await message.send(`_I'm not admin._`) | |
| if (!match || isNaN(match)) return await message.GroupSettingsChange(message.jid, true) | |
| await message.GroupSettingsChange(message.jid, true) | |
| await message.send(`_Muted for ${match} min._`) | |
| await sleep(1000 * 60 * match) | |
| return await message.GroupSettingsChange(message.jid, false) | |
| } | |
| ) | |
| bot( | |
| { | |
| pattern: 'unmute ?(.*)', | |
| desc: 'Makes Group All participants can send Message.', | |
| type: 'group', | |
| onlyGroup: true, | |
| }, | |
| async (message, match) => { | |
| const participants = await message.groupMetadata(message.jid) | |
| const isImAdmin = await isAdmin(participants, message.client.user.jid) | |
| if (!isImAdmin) return await message.send(`_I'm not admin._`) | |
| return await message.GroupSettingsChange(message.jid, false) | |
| } | |
| ) | |
| bot( | |
| { | |
| pattern: 'join ?(.*)', | |
| type: 'group', | |
| desc: 'Join invite link.', | |
| }, | |
| async (message, match) => { | |
| match = match || message.reply_message.text | |
| if (!match) return await message.send(`_Give me a Group invite link._`) | |
| const wa = /chat.whatsapp.com\/([0-9A-Za-z]{20,24})/ | |
| const [_, code] = match.match(wa) || [] | |
| if (!code) return await message.send(`_Give me a Group invite link._`) | |
| const res = await message.infoInvite(code) | |
| if (res.size > 1024) return await message.send('*Group full!*') | |
| const join = await message.acceptInvite(code) | |
| if (!join) return await message.send(`_Join Request Sent_`) | |
| return await message.send(`_Joined_`) | |
| } | |
| ) | |
| bot( | |
| { | |
| pattern: 'revoke', | |
| onlyGroup: true, | |
| type: 'group', | |
| desc: 'Revoke Group invite link.', | |
| }, | |
| async (message, match) => { | |
| const participants = await message.groupMetadata(message.jid) | |
| const im = await isAdmin(participants, message.client.user.jid) | |
| if (!im) return await message.send(`_I'm not admin._`) | |
| await message.revokeInvite(message.jid) | |
| } | |
| ) | |
| bot( | |
| { | |
| pattern: 'ginfo ?(.*)', | |
| type: 'group', | |
| desc: 'Shows group invite info', | |
| }, | |
| async (message, match) => { | |
| match = match || message.reply_message.text | |
| if (!match) return await message.send('*Example : info group_invte_link*') | |
| const linkRegex = /chat.whatsapp.com\/([0-9A-Za-z]{20,24})/i | |
| const [_, code] = match.match(linkRegex) || [] | |
| if (!code) return await message.send('_Invalid invite link_') | |
| const res = await message.infoInvite(code) | |
| const caption = `*Name :* ${res.subject} | |
| *Jid :* ${res.id}@g.us | |
| *Owner :* ${jidToNum(res.creator)} | |
| *Members :* ${res.size} | |
| *Created :* ${formatTime(res.creation)} | |
| *Desc :* ${res.desc}` | |
| if (res.url) return await message.sendFromUrl(res.url, { caption }) | |
| return await message.send(caption) | |
| } | |
| ) | |
| bot( | |
| { | |
| pattern: 'common ?(.*)', | |
| onlyGroup: true, | |
| type: 'group', | |
| desc: 'Show or kick common memebers in two groups.', | |
| }, | |
| async (message, match) => { | |
| const example = `*Example*\ncommon jid\ncommon jid kick\ncommon jid1 jid2\ncommon jid1,jid2 kick\ncommon jid1 jid2 jid3...jid999\n\ncommon jid1 jid2 jid3 any\nkick - to remove only group u command\nkickall - to remove from all jids\nany - to include two or more common group members\nskip - to avoid removing from all, example skip to avoid from one group or skip jid1,jid2,jid3 to skip from.` | |
| const kick = match.includes('kick') | |
| const kickFromAll = match.includes('kickall') | |
| const isAny = match.includes('any') | |
| const jids = parsedJid(match) | |
| const toSkip = parsedJid(match.split('skip')[1] || '') | |
| const anySkip = match.includes('skip') && !toSkip.length | |
| if (!match || (jids.length == 1 && jids.includes(message.jid))) | |
| return await message.send(example) | |
| if (!jids.includes(message.jid) && jids.length < 2) jids.push(message.jid) | |
| const metadata = {} | |
| for (const jid of jids) { | |
| metadata[jid] = (await message.groupMetadata(jid)) | |
| .filter((user) => !user.admin) | |
| .map(({ id }) => id) | |
| } | |
| if (Object.keys(metadata).length < 2) return await message.send(example) | |
| const common = getCommon(Object.values(metadata), isAny) | |
| if (!common.length) return await message.send(`_Zero common members_`) | |
| if (kickFromAll) { | |
| let gids = jids | |
| if (!anySkip) gids = jids.filter((id) => !toSkip.includes(id)) | |
| const skip = {} | |
| for (const jid of gids) { | |
| const participants = await message.groupMetadata(jid) | |
| const kick = participants.map(({ id }) => id).filter((id) => common.includes(id)) | |
| const im = await isAdmin(participants, message.client.user.jid) | |
| if (im) { | |
| if (anySkip) { | |
| for (const id of kick) { | |
| if (skip[id]) await message.Kick(id, jid) | |
| skip[id] = id | |
| } | |
| } else await message.Kick(kick, jid) | |
| } | |
| } | |
| return | |
| } | |
| if (kick) { | |
| const participants = await message.groupMetadata(message.jid) | |
| const im = await isAdmin(participants, message.client.user.jid) | |
| if (!im) return await message.send(`_I'm not admin._`) | |
| return await message.Kick(common) | |
| } | |
| let msg = '' | |
| common.forEach((e, i) => (msg += `${i + 1}${addSpace(i + 1, common.length)} @${jidToNum(e)}\n`)) | |
| await message.send(msg.trim(), { contextInfo: { mentionedJid: common } }) | |
| } | |
| ) | |