# Ultroid - UserBot
# Copyright (C) 2021-2025 TeamUltroid
#
# This file is a part of < https://github.com/TeamUltroid/Ultroid/ >
# PLease read the GNU Affero General Public License in
# .
"""
✘ Commands Available -
• `{i}send `
send message to User/Chat.
• `{i}fwdreply `
Reply to someone's msg by forwarding it in private.
• `{i}save `
Save that replied msg to ur saved messages box.
• `{i}fsave `
Forward that replied msg to ur saved messages.
"""
from . import HNDLR, eod, get_string, ultroid_cmd
@ultroid_cmd(pattern="(send|dm)( (.*)|$)", fullsudo=True)
async def dm(e):
if len(e.text.split()) <= 1:
return await e.eor(get_string("dm_1"), time=5)
chat = e.text.split()[1]
try:
chat_id = await e.client.parse_id(chat)
except Exception as ex:
return await e.eor(f"`{ex}`", time=5)
if len(e.text.split()) > 2:
msg = e.text.split(maxsplit=2)[2]
elif e.reply_to:
msg = await e.get_reply_message()
else:
return await e.eor(get_string("dm_2"), time=5)
try:
_ = await e.client.send_message(chat_id, msg)
n_, time = get_string("dm_3"), None
if not _.is_private:
n_ = f"[{n_}]({_.message_link})"
await e.eor(n_, time=time)
except Exception as m:
await e.eor(get_string("dm_4").format(m, HNDLR), time=5)
@ultroid_cmd(pattern="fwdreply( (.*)|$)", fullsudo=True)
async def _(e):
message = e.pattern_match.group(1).strip()
if not e.reply_to_msg_id:
return await e.eor(get_string("ex_1"), time=5)
if not message:
return await e.eor(get_string("dm_6"), time=5)
msg = await e.get_reply_message()
fwd = await msg.forward_to(msg.sender_id)
await fwd.reply(message)
await e.eor(get_string("dm_5"), time=5)
@ultroid_cmd(pattern="(f|)save$")
async def saf(e):
x = await e.get_reply_message()
if not x:
return await eod(
e, "Reply to Any Message to save it to ur saved messages", time=5
)
if e.pattern_match.group(1).strip() == "f":
await x.forward_to(e.sender_id)
else:
await e.client.send_message(e.sender_id, x)
await e.eor("Message saved to Your Pm/Saved Messages.", time=5)