|
|
|
|
|
|
|
|
|
|
|
|
|
""" |
|
β 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 |
|
|
|
from telethon.tl.types import InputMessagesFilterPhotos |
|
|
|
try: |
|
from PIL import Image |
|
except ImportError: |
|
Image = None |
|
from pyUltroid.fns.misc import unsplashsearch |
|
from pyUltroid.fns.tools import LogoHelper |
|
|
|
from . import OWNER_ID, OWNER_NAME, download_file, get_string, mediainfo, ultroid_cmd |
|
|
|
|
|
@ultroid_cmd(pattern="logo( (.*)|$)") |
|
async def logo_gen(event): |
|
xx = await event.eor(get_string("com_1")) |
|
name = event.pattern_match.group(1).strip() |
|
if not name: |
|
return await xx.eor("`Give a name too!`", time=5) |
|
bg_, font_ = None, None |
|
if event.reply_to_msg_id: |
|
temp = await event.get_reply_message() |
|
if temp.media: |
|
if hasattr(temp.media, "document") and ( |
|
("font" in temp.file.mime_type) |
|
or (".ttf" in temp.file.name) |
|
or (".otf" in temp.file.name) |
|
): |
|
font_ = await temp.download_media("resources/fonts/") |
|
elif "pic" in mediainfo(temp.media): |
|
bg_ = await temp.download_media() |
|
if not bg_: |
|
SRCH = [ |
|
"background", |
|
"neon", |
|
"anime", |
|
"art", |
|
"bridges", |
|
"streets", |
|
"computer", |
|
"cyberpunk", |
|
"nature", |
|
"abstract", |
|
"exoplanet", |
|
"magic", |
|
"3d render", |
|
] |
|
res = await unsplashsearch(random.choice(SRCH), limit=1) |
|
bg_, _ = await download_file(res[0], "resources/downloads/logo.png") |
|
newimg = "resources/downloads/unsplash-temp.jpg" |
|
img_ = Image.open(bg_) |
|
img_.save(newimg) |
|
os.remove(bg_) |
|
bg_ = newimg |
|
|
|
if not font_: |
|
fpath_ = glob.glob("resources/fonts/*") |
|
font_ = random.choice(fpath_) |
|
if len(name) <= 8: |
|
strke = 10 |
|
elif len(name) >= 9: |
|
strke = 5 |
|
else: |
|
strke = 20 |
|
name = LogoHelper.make_logo( |
|
bg_, |
|
name, |
|
font_, |
|
fill="white", |
|
stroke_width=strke, |
|
stroke_fill="black", |
|
) |
|
await xx.edit("`Done!`") |
|
await event.client.send_file( |
|
event.chat_id, |
|
file=name, |
|
caption=f"Logo by [{OWNER_NAME}](tg://user?id={OWNER_ID})", |
|
force_document=True, |
|
) |
|
os.remove(name) |
|
await xx.delete() |
|
if os.path.exists(bg_): |
|
os.remove(bg_) |
|
|