Spaces:
Paused
Paused
| # 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 - | |
| • `{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 | |
| 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_) | |