# █ █ █ █▄▀ ▄▀█ █▀▄▀█ █▀█ █▀█ █ █
# █▀█ █ █ █ █▀█ █ ▀ █ █▄█ █▀▄ █▄█
# 🔒 Licensed under the GNU GPLv3
# 🌐 https://www.gnu.org/licenses/agpl-3.0.html
# 👤 https://t.me/hikamoru
# meta developer: @hikamorumods
# meta banner: https://github.com/AmoreForever/assets/blob/master/Amethyste.jpg?raw=true
from .. import utils, loader
from hikkatl.errors.common import AlreadyInConversationError
from telethon.tl.types import Message
@loader.tds
class Amethyste(loader.Module):
"""Generate memes image"""
strings = {
"name": "Amethyste",
"wait": "🫥 Wait...",
"already_open": "😹 Conversation already opened Please wait.",
"r_photo": "🖼 Please reply to image.",
"no_args": "🚫 Pls provide args",
"not_found": "🤷♀️ Not found",
}
strings_ru = {
"wait": "🫥 Подождите...",
"already_open": "😹 Диалог уже открыт. Подождите.",
"r_photo": "🖼 Ответьте на фото.",
"no_args": "🚫 Укажите аргументы",
"not_found": "🤷♀️ Не найдено",
}
strings_uz = {
"wait": "🫥 Kuting...",
"already_open": "😹 Dialog allaqachon ochilgan. Iltimos, kuting.",
"r_photo": "🖼 Rasmga javob bering.",
"no_args": "🚫 Argumetlarni ko'rsating",
"not_found": "🤷♀️ Topilmadi",
}
_list = [
"3000years",
"approved",
"beautiful",
"brazzers",
"burn",
"challenger",
"circle",
"contrast",
"crush",
"ddungeon",
"dictator",
"distort",
"emboss",
"fire",
"frame",
"afusion",
"glitch",
"greyscale",
"instagram",
"invert",
"jail",
"magik",
"missionpassed",
"moustache",
"ps4",
"posterize",
"rejected",
"rip",
"scary",
"scrolloftruth",
"sepia",
"sharpen",
"sniper",
"thanos",
"trinity",
"triggered",
"unsharpen",
"utatoo",
"wanted",
"wasted",
]
async def amegencmd(self, message: Message):
"""Generate memes image"""
reply = await message.get_reply_message()
args = utils.get_args_raw(message)
await utils.answer(message, self.strings["wait"])
if not args:
return await utils.answer(message, self.strings["no_args"])
elif not reply.photo:
return await utils.answer(message, self.strings["r_photo"])
elif args not in self._list:
return await utils.answer(message, self.strings["not_found"])
async with self.client.conversation("@aozoram_bot") as conv:
try:
msg = await conv.send_message("/start")
s = await conv.get_response()
f = await conv.send_file(file=reply)
m = await f.reply(f"/amegen {args}")
await conv.get_response() # wait for response
response = await conv.get_response()
await utils.answer_file(message, response.media)
await s.delete()
await msg.delete()
await m.delete()
except AlreadyInConversationError:
await utils.answer(message, self.strings["already_open"])
await self.client.delete_dialog("@aozoram_bot")
async def amelistcmd(self, message: Message):
"""List of memes"""
spis = "\n".join([f"• {i}" for i in self._list])
await utils.answer(message, f"Available memes:\n\n{spis}")