Files
Ultroid-fork/plugins/logo.py
Danish 6cc2e1907c Ultroid v0.0.7 Fixes 24/05
ChangeLog - https://t.me/TheUltroid/44

Co-authored-by: Anonymous <69723581+New-dev0@users.noreply.github.com>
Co-authored-by: Amit Sharma <48654350+buddhhu@users.noreply.github.com>
Co-authored-by: 1Danish-00 <danish@ultroid.tech>
2021-05-24 20:09:49 +05:30

116 lines
3.4 KiB
Python

# 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
# <https://www.github.com/TeamUltroid/Ultroid/blob/main/LICENSE/>.
"""
✘ Commands Available -
• `{i}logo <text>`
Generate a logo of the given Text
Or Reply To image , to write ur text on it.
Or Reply To Font File, To write with that font.
"""
import glob
import os
import random
import time
from PIL import Image, ImageDraw, ImageFont
from telethon.tl.types import InputMessagesFilterPhotos
from . import *
@ultroid_cmd(pattern="logo ?(.*)")
async def logo_gen(event):
xx = await eor(event, get_string("com_1"))
name = event.pattern_match.group(1)
if not name:
await eod(xx, "`Give a name too!`")
bg_, font_ = "", ""
if event.reply_to_msg_id:
temp = await event.get_reply_message()
if temp.media:
if hasattr(temp.media, "document"):
if "font" in temp.file.mime_type:
font_ = await temp.download_media()
elif (".ttf" in temp.file.name) or (".otf" in temp.file.name):
font_ = await temp.download_media()
elif "pic" in mediainfo(temp.media):
bg_ = await temp.download_media()
else:
pics = []
async for i in ultroid.iter_messages(
"@UltroidLogos", filter=InputMessagesFilterPhotos
):
pics.append(i)
id_ = random.choice(pics)
bg_ = await id_.download_media()
fpath_ = "./resources/fonts/"
f = random.choice(os.listdir(fpath_))
font_ = fpath_ + f
if not bg_:
pics = []
async for i in ultroid.iter_messages(
"@UltroidLogos", filter=InputMessagesFilterPhotos
):
pics.append(i)
id_ = random.choice(pics)
bg_ = await id_.download_media()
if not font_:
fpath_ = glob.glob("resources/fonts/*")
font_ = random.choice(fpath_)
if len(name) <= 8:
fnt_size = 150
strke = 10
elif len(name) >= 9:
fnt_size = 50
strke = 5
else:
fnt_size = 130
strke = 20
img = Image.open(bg_)
draw = ImageDraw.Draw(img)
font = ImageFont.truetype(font_, fnt_size)
w, h = draw.textsize(name, font=font)
h += int(h * 0.21)
image_width, image_height = img.size
draw.text(
((image_width - w) / 2, (image_height - h) / 2),
name,
font=font,
fill=(255, 255, 255),
)
x = (image_width - w) / 2
y = (image_height - h) / 2
draw.text(
(x, y), name, font=font, fill="white", stroke_width=strke, stroke_fill="black"
)
flnme = f"ultd.png"
img.save(flnme, "png")
await xx.edit("`Done!`")
if os.path.exists(flnme):
tt = time.time()
up = await uploader(flnme, flnme, tt, xx, "Uploading...")
await ultroid.send_file(
event.chat_id,
file=up,
caption=f"Logo by [{OWNER_NAME}](tg://user?id={OWNER_ID})",
foce_document=True,
)
os.remove(flnme)
await xx.delete()
if os.path.exists(bg_):
os.remove(bg_)
if os.path.exists(font_):
if not font_.startswith("resources/fonts"):
os.remove(font_)
HELP.update({f"{__name__.split('.')[1]}": f"{__doc__.format(i=HNDLR)}"})