| | |
| | |
| | |
| | |
| | |
| | |
| | """ |
| | ✘ 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_) |
| |
|