from .. import loader, utils from telethon import events from telethon.errors.rpcerrorlist import YouBlockedUserError import io from io import BytesIO from PIL import Image def register(cb): cb(VsratoMemesMod()) class VsratoMemesMod(loader.Module): """Всратые мемы.""" strings = {'name': 'Всратые мемы'} async def wolfcmd(self, event): """"Используй .wolf.""" chat = "@neuroakelabot" await event.edit("Минуточку...") async with event.client.conversation(chat) as conv: try: response = conv.wait_event(events.NewMessage(incoming=True, from_users=979556006)) await event.client.send_message(chat, "Дай мне мем, Акела") response = await response except YouBlockedUserError: await event.edit("Разблокируй @neuroakelabot") return await event.client.send_file(event.to_id, response.media) await event.delete() async def vsratocmd(self, event): """Используй .vsrato <реплай на пикчу>.""" reply = await event.get_reply_message() if not reply: await event.edit("Нет реплая на пикчу.") return else: pic = await check_media(event, reply) if not pic: await utils.answer(event, "Это не изображение.") return chat = '@vsratoslavbot' await event.edit("Минуточку...") async with event.client.conversation(chat) as conv: try: medias = kekw(pic) await event.client.send_file(chat, medias) response = conv.wait_event(events.NewMessage(incoming=True, from_users=1066090937)) response = await response if response.media: lol = await response.media else: response = conv.wait_event(events.NewMessage(incoming=True, from_users=1066090937)) response = await response except YouBlockedUserError: await event.reply("Разблокируй @vsratoslavbot.") return await event.client.send_file(event.to_id, response.media, reply_to=await event.get_reply_message()) event.delete() async def check_media(message, reply): if reply and reply.media: if reply.photo: data = reply.photo elif reply.document: if reply.gif or reply.video or reply.audio or reply.voice: return None data = reply.media.document else: return None else: return None if not data or data is None: return None else: data = await message.client.download_file(data, bytes) try: Image.open(io.BytesIO(data)) return data except: return None def kekw(reply): scrrrra = Image.open(BytesIO(reply)) out = io.BytesIO() out.name = "outsider.png" scrrrra.save(out) return out.getvalue()