Spaces:
Running
Running
| # 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" | |
| 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) | |
| 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) | |
| 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() | |
| 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) | |
| 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) | |
| 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() | |
| 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**!", | |
| ) | |