# Ultroid - UserBot
# Copyright (C) 2020 TeamUltroid
#
# This file is a part of < https://github.com/TeamUltroid/Ultroid/ >
# PLease read the GNU Affero General Public License in
# .
"""
✘ Commands Available -
---- Welcomes ----
• `{i}setwelcome `
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 `
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.
"""
import os
from telegraph import upload_file as uf
from telethon.utils import get_display_name, pack_bot_file_id
from . import *
Note = "\n\nNote: `{mention}`, `{group}`, `{count}`, `{name}`, `{fullname}`, `{username}`, `{userid}` can be used as formatting parameters.\n\n"
@ultroid_cmd(pattern="setwelcome")
async def setwel(event):
x = await eor(event, get_string("com_1"))
r = await event.get_reply_message()
if event.is_private:
return await eod(x, "Please use this in a group and not PMs!", time=10)
if r and r.media:
wut = mediainfo(r.media)
if wut.startswith(("pic", "gif")):
dl = await bot.download_media(r.media)
variable = uf(dl)
os.remove(dl)
m = "https://telegra.ph" + variable[0]
elif wut == "video":
if r.media.document.size > 8 * 1000 * 1000:
return await eod(x, "`Unsupported Media`")
else:
dl = await bot.download_media(r.media)
variable = uf(dl)
os.remove(dl)
m = "https://telegra.ph" + variable[0]
else:
m = pack_bot_file_id(r.media)
if r.text:
add_welcome(event.chat_id, r.message, m)
else:
add_welcome(event.chat_id, None, m)
await eor(x, "`Welcome note saved`")
elif r and r.text:
add_welcome(event.chat_id, r.message, None)
await eor(x, "`Welcome note saved`")
else:
await eod(x, "`Reply to message which u want to set as welcome`")
@ultroid_cmd(pattern="clearwelcome$")
async def clearwel(event):
if not get_welcome(event.chat_id):
await eod(event, "`No welcome was set!`", time=5)
delete_welcome(event.chat_id)
await eod(event, "`Welcome Note Deleted`")
@ultroid_cmd(pattern="getwelcome$")
async def listwel(event):
wel = get_welcome(event.chat_id)
if not wel:
await eod(event, "`No welcome was set!`", time=5)
msgg = wel["welcome"]
med = wel["media"]
await event.reply(f"**Welcome Note in this chat**\n\n`{msgg}`", file=med)
await event.delete()
@ultroid_bot.on(events.ChatAction())
async def _(event):
wel = get_welcome(event.chat_id)
if wel:
if event.user_joined or event.user_added:
user = await event.get_user()
chat = await event.get_chat()
title = chat.title if chat.title else "this chat"
pp = await event.client.get_participants(chat)
count = len(pp)
mention = f"[{get_display_name(user)}](tg://user?id={user.id})"
name = user.first_name
last = user.last_name
if last:
fullname = f"{name} {last}"
else:
fullname = name
uu = user.username
if uu:
username = f"@{uu}"
else:
username = mention
msgg = wel["welcome"]
med = wel["media"]
userid = user.id
if msgg:
await event.reply(
msgg.format(
mention=mention,
group=title,
count=count,
name=name,
fullname=fullname,
username=username,
userid=userid,
),
file=med,
)
else:
await event.reply(file=med)
@ultroid_cmd(pattern="setgoodbye")
async def setgb(event):
x = await eor(event, get_string("com_1"))
r = await event.get_reply_message()
if event.is_private:
return await eod(x, "Please use this in a group and not PMs!", time=10)
if r and r.media:
wut = mediainfo(r.media)
if wut.startswith(("pic", "gif")):
dl = await bot.download_media(r.media)
variable = uf(dl)
os.remove(dl)
m = "https://telegra.ph" + variable[0]
elif wut == "video":
if r.media.document.size > 8 * 1000 * 1000:
return await eod(x, "`Unsupported Media`")
else:
dl = await bot.download_media(r.media)
variable = uf(dl)
os.remove(dl)
m = "https://telegra.ph" + variable[0]
else:
m = pack_bot_file_id(r.media)
if r.text:
add_goodbye(event.chat_id, r.message, m)
else:
add_goodbye(event.chat_id, None, m)
await eor(x, "`Goodbye note saved`")
elif r and r.text:
add_goodbye(event.chat_id, r.message, None)
await eor(x, "`Goodbye note saved`")
else:
await eod(x, "`Reply to message which u want to set as goodbye`")
@ultroid_cmd(pattern="cleargoodbye$")
async def clearwgb(event):
if not get_goodbye(event.chat_id):
await eod(event, "`No goodbye was set!`", time=5)
delete_goodbye(event.chat_id)
await eod(event, "`Goodbye Note Deleted`")
@ultroid_cmd(pattern="getgoodbye$")
async def listgd(event):
wel = get_goodbye(event.chat_id)
if not wel:
await eod(event, "`No goodbye was set!`", time=5)
msgg = wel["goodbye"]
med = wel["media"]
await event.reply(f"**Goodbye Note in this chat**\n\n`{msgg}`", file=med)
await event.delete()
@ultroid_bot.on(events.ChatAction())
async def _(event):
wel = get_goodbye(event.chat_id)
if wel:
if event.user_left or event.user_kicked:
user = await event.get_user()
chat = await event.get_chat()
title = chat.title if chat.title else "this chat"
pp = await event.client.get_participants(chat)
count = len(pp)
mention = f"[{get_display_name(user)}](tg://user?id={user.id})"
name = user.first_name
last = user.last_name
if last:
fullname = f"{name} {last}"
else:
fullname = name
uu = user.username
if uu:
username = f"@{uu}"
else:
username = mention
msgg = wel["goodbye"]
med = wel["media"]
userid = user.id
if msgg:
await event.reply(
msgg.format(
mention=mention,
group=title,
count=count,
name=name,
fullname=fullname,
username=username,
userid=userid,
),
file=med,
)
else:
await event.reply(file=med)
HELP.update({f"{__name__.split('.')[1]}": f"{__doc__.format(i=HNDLR)}" + Note})