Files
Ultroid-fork/addons/waifu.py

65 lines
1.9 KiB
Python

# Ported Plugin
"""
✘ Commands Available -
• `{i}waifu <text>`
paste text on random stickers.
"""
import re
import random
from . import *
EMOJI_PATTERN = re.compile(
"["
"\U0001F1E0-\U0001F1FF" # flags (iOS)
"\U0001F300-\U0001F5FF" # symbols & pictographs
"\U0001F600-\U0001F64F" # emoticons
"\U0001F680-\U0001F6FF" # transport & map symbols
"\U0001F700-\U0001F77F" # alchemical symbols
"\U0001F780-\U0001F7FF" # Geometric Shapes Extended
"\U0001F800-\U0001F8FF" # Supplemental Arrows-C
"\U0001F900-\U0001F9FF" # Supplemental Symbols and Pictographs
"\U0001FA00-\U0001FA6F" # Chess Symbols
"\U0001FA70-\U0001FAFF" # Symbols and Pictographs Extended-A
"\U00002702-\U000027B0" # Dingbats
"]+",
)
def deEmojify(inputString: str) -> str:
"""Remove emojis and other non-safe characters from string"""
return re.sub(EMOJI_PATTERN, "", inputString)
@ultroid_cmd(
pattern="waifu ?(.*)",
)
async def waifu(animu):
xx = await eor(animu, get_string("com_1"))
# """Creates random anime sticker!"""
text = animu.pattern_match.group(1)
if not text:
if animu.is_reply:
text = (await animu.get_reply_message()).message
else:
await xx.edit(get_string("sts_1"))
return
waifus = [32, 33, 37, 40, 41, 42, 58, 20]
finalcall = "#" + str(random.choice(waifus))
query = f"{finalcall}{deEmojify(text)}"
try:
sticcers = await animu.client.inline_query("stickerizerbot", query)
if not sticcers:
await xx.edit("No stickers found for the given query. Please try again.")
return
await sticcers[0].click(
animu.chat_id,
reply_to=animu.reply_to_msg_id,
silent=bool(animu.is_reply),
hide_via=True,
)
await xx.delete()
except Exception as e:
await xx.edit(f"Failed to fetch sticker: {str(e)}")