Spaces:
Paused
Paused
| const { | |
| bot, | |
| getMsg, | |
| jidToNum, | |
| resetMsgs, | |
| getFloor, | |
| sleep, | |
| secondsToHms, | |
| isAdmin, | |
| addSpace, | |
| } = require('../lib') | |
| bot( | |
| { | |
| pattern: 'msgs ?(.*)', | |
| desc: 'shows groups message count', | |
| type: 'group', | |
| onlyGroup: true, | |
| }, | |
| async (message, match) => { | |
| const user = message.mention[0] || message.reply_message.jid | |
| const participants = await getMsg(message.jid, user) | |
| let msg = '' | |
| const now = new Date().getTime() | |
| if (user) { | |
| msg += `*Number :* ${jidToNum(user)}\n*Name :* ${participants.name || ''}\n*Total Msgs :* ${ | |
| participants.total | |
| }\n` | |
| const { items } = participants | |
| for (const item in items) msg += `*${item} :* ${items[item]}\n` | |
| msg += `*lastSeen :* ${secondsToHms((now - participants.time) / 1000) || 0} ago\n\n` | |
| } else { | |
| for (const participant in participants) { | |
| msg += `*Number :* ${jidToNum(participant)}\n*Name :* ${ | |
| participants[participant].name || '' | |
| }\n*Total Msgs :* ${participants[participant].total}\n` | |
| const { items } = participants[participant] | |
| for (const item in items) msg += `*${item} :* ${items[item]}\n` | |
| msg += `*lastSeen :* ${ | |
| secondsToHms((now - participants[participant].time) / 1000) || 0 | |
| } ago\n\n` | |
| } | |
| } | |
| await message.send(msg.trim()) | |
| } | |
| ) | |
| bot( | |
| { | |
| pattern: 'reset ?(.*)', | |
| desc: 'reset groups message count', | |
| type: 'group', | |
| onlyGroup: true, | |
| }, | |
| async (message, match) => { | |
| const user = message.reply_message.jid || message.mention[0] | |
| if (!user && match != 'all') | |
| return await message.send('*Example :*\nreset all\nreset mention/reply a person') | |
| if (match == 'all') { | |
| await resetMsgs(message.jid) | |
| return await message.send('_Everyones message count deleted._') | |
| } | |
| await resetMsgs(message.jid, user) | |
| return await message.send(`_@${jidToNum(user)} message count deleted._`, { | |
| contextInfo: { mentionedJid: [user] }, | |
| }) | |
| } | |
| ) | |
| bot( | |
| { | |
| pattern: 'inactive ?(.*)', | |
| desc: 'show/kick who message count not met', | |
| type: 'group', | |
| onlyGroup: true, | |
| }, | |
| async (message, match) => { | |
| const members = await message.groupMetadata(message.jid) | |
| const membersJids = members.map(({ id }) => id) | |
| const [type, count, kickOrType, COUNT, KICK] = match.split(' ') | |
| if ( | |
| !type || | |
| !count || | |
| (type.toLowerCase() != 'total' && type.toLowerCase() != 'day') || | |
| isNaN(count) || | |
| (kickOrType && kickOrType != 'total' && kickOrType != 'kick') || | |
| (COUNT && isNaN(COUNT)) | |
| ) | |
| return await message.send( | |
| `*Example :*\ninactive day 10\ninactive day 10 kick\ninactive total 100\ninactive total 100 kick\ninactive day 7 total 150\ninactive day 7 total 150 kick\n\nif kick not mentioned, Just list` | |
| ) | |
| const participants = await getMsg(message.jid) | |
| const now = new Date().getTime() | |
| const inactive = [] | |
| for (const participant of membersJids) { | |
| if (!participants[participant]) inactive.push(participant) | |
| else if (kickOrType && kickOrType == 'total') { | |
| if ( | |
| participants[participant].total <= COUNT && | |
| getFloor((now - participants[participant].time) / 1000) / 86400 >= count | |
| ) | |
| inactive.push(participant) | |
| } else if (type == 'total') { | |
| if (participants[participant].total <= count) inactive.push(participant) | |
| } else { | |
| if (getFloor((now - participants[participant].time) / 1000) / 86400 >= count) | |
| inactive.push(participant) | |
| } | |
| } | |
| let msg = `_Total inactives are : ${inactive.length}_` | |
| if (inactive.length < 1) return await message.send(msg) | |
| if (kickOrType == 'kick' || KICK == 'kick') { | |
| const isImAdmin = await isAdmin(members, message.client.user.jid) | |
| if (!isImAdmin) return await message.send(`_I'm not admin._`) | |
| await message.send(`_Removing ${inactive.length} inactive members in 7 seconds_`) | |
| await sleep(7000) | |
| return await message.Kick(inactive) | |
| } | |
| for (let i = 0; i < inactive.length; i++) | |
| msg += `\n*${i + 1}.*${addSpace(i + 1, inactive.length)} @${jidToNum(inactive[i])}` | |
| return await message.send(msg, { | |
| contextInfo: { mentionedJid: inactive }, | |
| }) | |
| } | |
| ) | |