bash / plugins /greetings.py
azils3's picture
Upload 216 files
618430a verified
# 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
# <https://www.github.com/TeamUltroid/Ultroid/blob/main/LICENSE/>.
"""
✘ Commands Available -
---- Welcomes ----
• `{i}setwelcome <message/reply to message>`
Set welcome message in the current chat.
• `{i}clearwelcome`
Delete the welcome in the current chat.
• `{i}getwelcome`
Get the welcome message in the current chat.
---- GoodByes ----
• `{i}setgoodbye <message/reply to message>`
Set goodbye message in the current chat.
• `{i}cleargoodbye`
Delete the goodbye in the current chat.
• `{i}getgoodbye`
Get the goodbye message in the current chat.
• `{i}thankmembers on/off`
Send a thank you sticker on hitting a members count of 100*x in your groups.
"""
import os
from . import upload_file as uf
from telethon.utils import pack_bot_file_id
from pyUltroid.dB.greetings_db import (
add_goodbye,
add_thanks,
add_welcome,
delete_goodbye,
delete_welcome,
get_goodbye,
get_welcome,
must_thank,
remove_thanks,
)
from pyUltroid.fns.tools import create_tl_btn, format_btn, get_msg_button
from . import HNDLR, eor, get_string, mediainfo, ultroid_cmd
from ._inline import something
Note = "\n\nNote: `{mention}`, `{group}`, `{count}`, `{name}`, `{fullname}`, `{username}`, `{userid}` can be used as formatting parameters.\n\n"
@ultroid_cmd(pattern="setwelcome", groups_only=True)
async def setwel(event):
x = await event.eor(get_string("com_1"))
r = await event.get_reply_message()
btn = format_btn(r.buttons) if (r and r.buttons) else None
try:
text = event.text.split(maxsplit=1)[1]
except IndexError:
text = r.text if r else None
if r and r.media:
wut = mediainfo(r.media)
if wut.startswith(("pic", "gif")):
dl = await r.download_media()
m = uf(dl)
os.remove(dl)
elif wut == "video":
if r.media.document.size > 8 * 1000 * 1000:
return await eor(x, get_string("com_4"), time=5)
dl = await r.download_media()
m = uf(dl)
os.remove(dl)
elif wut == "web":
m = None
else:
m = pack_bot_file_id(r.media)
if r.text:
txt = r.text
if not btn:
txt, btn = get_msg_button(r.text)
add_welcome(event.chat_id, txt, m, btn)
else:
add_welcome(event.chat_id, None, m, btn)
await eor(x, get_string("grt_1"))
elif text:
if not btn:
txt, btn = get_msg_button(text)
add_welcome(event.chat_id, txt, None, btn)
await eor(x, get_string("grt_1"))
else:
await eor(x, get_string("grt_3"), time=5)
@ultroid_cmd(pattern="clearwelcome$", groups_only=True)
async def clearwel(event):
if not get_welcome(event.chat_id):
return await event.eor(get_string("grt_4"), time=5)
delete_welcome(event.chat_id)
await event.eor(get_string("grt_5"), time=5)
@ultroid_cmd(pattern="getwelcome$", groups_only=True)
async def listwel(event):
wel = get_welcome(event.chat_id)
if not wel:
return await event.eor(get_string("grt_4"), time=5)
msgg, med = wel["welcome"], wel["media"]
if wel.get("button"):
btn = create_tl_btn(wel["button"])
return await something(event, msgg, med, btn)
await event.reply(f"**Welcome Note in this chat**\n\n`{msgg}`", file=med)
await event.delete()
@ultroid_cmd(pattern="setgoodbye", groups_only=True)
async def setgb(event):
x = await event.eor(get_string("com_1"))
r = await event.get_reply_message()
btn = format_btn(r.buttons) if (r and r.buttons) else None
try:
text = event.text.split(maxsplit=1)[1]
except IndexError:
text = r.text if r else None
if r and r.media:
wut = mediainfo(r.media)
if wut.startswith(("pic", "gif")):
dl = await r.download_media()
m = uf(dl)
os.remove(dl)
elif wut == "video":
if r.media.document.size > 8 * 1000 * 1000:
return await eor(x, get_string("com_4"), time=5)
dl = await r.download_media()
m = uf(dl)
os.remove(dl)
elif wut == "web":
m = None
else:
m = pack_bot_file_id(r.media)
if r.text:
txt = r.text
if not btn:
txt, btn = get_msg_button(r.text)
add_goodbye(event.chat_id, txt, m, btn)
else:
add_goodbye(event.chat_id, None, m, btn)
await eor(x, "`Goodbye note saved`")
elif text:
if not btn:
txt, btn = get_msg_button(text)
add_goodbye(event.chat_id, txt, None, btn)
await eor(x, "`Goodbye note saved`")
else:
await eor(x, get_string("grt_7"), time=5)
@ultroid_cmd(pattern="cleargoodbye$", groups_only=True)
async def clearwgb(event):
if not get_goodbye(event.chat_id):
return await event.eor(get_string("grt_6"), time=5)
delete_goodbye(event.chat_id)
await event.eor("`Goodbye Note Deleted`", time=5)
@ultroid_cmd(pattern="getgoodbye$", groups_only=True)
async def listgd(event):
wel = get_goodbye(event.chat_id)
if not wel:
return await event.eor(get_string("grt_6"), time=5)
msgg = wel["goodbye"]
med = wel["media"]
if wel.get("button"):
btn = create_tl_btn(wel["button"])
return await something(event, msgg, med, btn)
await event.reply(f"**Goodbye Note in this chat**\n\n`{msgg}`", file=med)
await event.delete()
@ultroid_cmd(pattern="thankmembers (on|off)", groups_only=True)
async def thank_set(event):
type_ = event.pattern_match.group(1).strip()
if not type_ or type_ == "":
await eor(
event,
f"**Current Chat Settings:**\n**Thanking Members:** `{must_thank(event.chat_id)}`\n\nUse `{HNDLR}thankmembers on` or `{HNDLR}thankmembers off` to toggle current settings!",
)
return
chat = event.chat_id
if type_.lower() == "on":
add_thanks(chat)
elif type_.lower() == "off":
remove_thanks(chat)
await eor(
event,
f"**Done! Thank you members has been turned** `{type_.lower()}` **for this chat**!",
)