| | |
| | |
| | |
| | |
| | |
| | |
| | """ |
| | ✘ Commands Available - |
| | |
| | • `{i}mute <reply to msg/ user id>` |
| | Mute user in current chat. |
| | |
| | • `{i}unmute <reply to msg/ user id>` |
| | Unmute user in current chat. |
| | |
| | • `{i}dmute <reply to msg/ user id>` |
| | Mute user in current chat by deleting msgs. |
| | |
| | • `{i}undmute <reply to msg/ use id>` |
| | Unmute dmuted user in current chat. |
| | |
| | • `{i}tmute <time> <reply to msg/ use id>` |
| | s- seconds |
| | m- minutes |
| | h- hours |
| | d- days |
| | Mute user in current chat with time. |
| | """ |
| | from telethon import events |
| | from telethon.utils import get_display_name |
| |
|
| | from pyUltroid.dB.mute_db import is_muted, mute, unmute |
| | from pyUltroid.fns.admins import ban_time |
| |
|
| | from . import asst, eod, get_string, inline_mention, ultroid_bot, ultroid_cmd |
| |
|
| |
|
| | @ultroid_bot.on(events.NewMessage(incoming=True)) |
| | async def watcher(event): |
| | if is_muted(event.chat_id, event.sender_id): |
| | await event.delete() |
| | if event.via_bot and is_muted(event.chat_id, event.via_bot_id): |
| | await event.delete() |
| |
|
| |
|
| | @ultroid_cmd( |
| | pattern="dmute( (.*)|$)", |
| | ) |
| | async def startmute(event): |
| | xx = await event.eor("`Muting...`") |
| | if input_ := event.pattern_match.group(1).strip(): |
| | try: |
| | userid = await event.client.parse_id(input_) |
| | except Exception as x: |
| | return await xx.edit(str(x)) |
| | elif event.reply_to_msg_id: |
| | reply = await event.get_reply_message() |
| | userid = reply.sender_id |
| | if reply.out or userid in [ultroid_bot.me.id, asst.me.id]: |
| | return await xx.eor("`You cannot mute yourself or your assistant bot.`") |
| | elif event.is_private: |
| | userid = event.chat_id |
| | else: |
| | return await xx.eor("`Reply to a user or add their userid.`", time=5) |
| | chat = await event.get_chat() |
| | if "admin_rights" in vars(chat) and vars(chat)["admin_rights"] is not None: |
| | if not chat.admin_rights.delete_messages: |
| | return await xx.eor("`No proper admin rights...`", time=5) |
| | elif "creator" not in vars(chat) and not event.is_private: |
| | return await xx.eor("`No proper admin rights...`", time=5) |
| | if is_muted(event.chat_id, userid): |
| | return await xx.eor("`This user is already muted in this chat.`", time=5) |
| | mute(event.chat_id, userid) |
| | await xx.eor("`Successfully muted...`", time=3) |
| |
|
| |
|
| | @ultroid_cmd( |
| | pattern="undmute( (.*)|$)", |
| | ) |
| | async def endmute(event): |
| | xx = await event.eor("`Unmuting...`") |
| | if input_ := event.pattern_match.group(1).strip(): |
| | try: |
| | userid = await event.client.parse_id(input_) |
| | except Exception as x: |
| | return await xx.edit(str(x)) |
| | elif event.reply_to_msg_id: |
| | userid = (await event.get_reply_message()).sender_id |
| | elif event.is_private: |
| | userid = event.chat_id |
| | else: |
| | return await xx.eor("`Reply to a user or add their userid.`", time=5) |
| | if not is_muted(event.chat_id, userid): |
| | return await xx.eor("`This user is not muted in this chat.`", time=3) |
| | unmute(event.chat_id, userid) |
| | await xx.eor("`Successfully unmuted...`", time=3) |
| |
|
| |
|
| | @ultroid_cmd( |
| | pattern="tmute", |
| | groups_only=True, |
| | manager=True, |
| | ) |
| | async def _(e): |
| | xx = await e.eor("`Muting...`") |
| | huh = e.text.split() |
| | try: |
| | tme = huh[1] |
| | except IndexError: |
| | return await xx.eor("`Time till mute?`", time=5) |
| | try: |
| | input_ = huh[2] |
| | except IndexError: |
| | input_ = "" |
| | chat = await e.get_chat() |
| | if e.reply_to_msg_id: |
| | reply = await e.get_reply_message() |
| | userid = reply.sender_id |
| | name = (await reply.get_sender()).first_name |
| | elif input_: |
| | userid = await e.client.parse_id(input_) |
| | name = (await e.client.get_entity(userid)).first_name |
| | else: |
| | return await xx.eor(get_string("tban_1"), time=3) |
| | if userid == ultroid_bot.uid: |
| | return await xx.eor("`I can't mute myself.`", time=3) |
| | try: |
| | bun = ban_time(tme) |
| | await e.client.edit_permissions( |
| | chat.id, |
| | userid, |
| | until_date=bun, |
| | send_messages=False, |
| | ) |
| | await eod( |
| | xx, |
| | f"`Successfully Muted` [{name}](tg://user?id={userid}) `in {chat.title} for {tme}`", |
| | time=5, |
| | ) |
| | except BaseException as m: |
| | await xx.eor(f"`{m}`", time=5) |
| |
|
| |
|
| | @ultroid_cmd( |
| | pattern="unmute( (.*)|$)", |
| | admins_only=True, |
| | manager=True, |
| | ) |
| | async def _(e): |
| | xx = await e.eor("`Unmuting...`") |
| | input = e.pattern_match.group(1).strip() |
| | chat = await e.get_chat() |
| | if e.reply_to_msg_id: |
| | reply = await e.get_reply_message() |
| | userid = reply.sender_id |
| | name = (await reply.get_sender()).first_name |
| | elif input: |
| | userid = await e.client.parse_id(input) |
| | name = (await e.client.get_entity(userid)).first_name |
| | else: |
| | return await xx.eor(get_string("tban_1"), time=3) |
| | try: |
| | await e.client.edit_permissions( |
| | chat.id, |
| | userid, |
| | until_date=None, |
| | send_messages=True, |
| | ) |
| | await eod( |
| | xx, |
| | f"`Successfully Unmuted` [{name}](tg://user?id={userid}) `in {chat.title}`", |
| | time=5, |
| | ) |
| | except BaseException as m: |
| | await xx.eor(f"`{m}`", time=5) |
| |
|
| |
|
| | @ultroid_cmd( |
| | pattern="mute( (.*)|$)", admins_only=True, manager=True, require="ban_users" |
| | ) |
| | async def _(e): |
| | xx = await e.eor("`Muting...`") |
| | input = e.pattern_match.group(1).strip() |
| | chat = await e.get_chat() |
| | if e.reply_to_msg_id: |
| | userid = (await e.get_reply_message()).sender_id |
| | name = get_display_name(await e.client.get_entity(userid)) |
| | elif input: |
| | try: |
| | userid = await e.client.parse_id(input) |
| | name = inline_mention(await e.client.get_entity(userid)) |
| | except Exception as x: |
| | return await xx.edit(str(x)) |
| | else: |
| | return await xx.eor(get_string("tban_1"), time=3) |
| | if userid == ultroid_bot.uid: |
| | return await xx.eor("`I can't mute myself.`", time=3) |
| | try: |
| | await e.client.edit_permissions( |
| | chat.id, |
| | userid, |
| | until_date=None, |
| | send_messages=False, |
| | ) |
| | await eod( |
| | xx, |
| | f"`Successfully Muted` {name} `in {chat.title}`", |
| | ) |
| | except BaseException as m: |
| | await xx.eor(f"`{m}`", time=5) |
| |
|