# ------------------------------------------------------------ # Module: RandomMemes # Description: RandomMemes module with a 2 mode. # Author: @kmodules # ------------------------------------------------------------ # Licensed under the GNU AGPLv3 # https:/www.gnu.org/licenses/agpl-3.0.html # ------------------------------------------------------------ # Author: @MeKsenon # Commands: .rmeme .rnmeme # scope: hikka_only # meta banner: https://i.ibb.co/hK4zxP7/6f8d18ef-53d2-42a5-94e5-c0abef97b1bb.jpg # meta developer: @kmodules # ------------------------------------------------------------ from .. import loader, utils import random __version__ = (1, 0, 1) @loader.tds class RandomMemesModule(loader.Module): """2 mode random memes.""" strings = { "name": "RandomMemes", "process": "🫥 Forwarding random meme...", "result": "😁 Your random meme!", "error": "🚫 Error occured while getting random meme. How?" } strings_ru = { "name": "RandomMemes", "process": "🫥 Пересылаю случайный мем...", "result": "😁 Ваш случайный мем!", "error": "🚫 Произошла ошибка при получении случайного мема. Как?" } async def client_ready(self, client, db): self.client = client async def _get_random_meme(self, channel): chat = await self.client.get_entity(channel) messages = await self.client.get_messages(chat, limit=300) media_messages = [msg for msg in messages if msg.media] if not media_messages: return None return random.choice(media_messages) @loader.command(ru_doc="NSFW мемы", en_doc="NSFW memes") async def rnmeme(self, message): await utils.answer(message, self.strings["process"]) random_msg = await self._get_random_meme("po_memes") if not random_msg: return await utils.answer(message, self.strings["error"]) await message.respond(file=random_msg.media, message=self.strings["result"]) await message.delete() @loader.command(ru_doc="Безопасные мемы", en_doc="Safe memes") async def rmeme(self, message): await utils.answer(message, self.strings["process"]) random_msg = await self._get_random_meme("prikoly_i_memy") if not random_msg: return await utils.answer(message, self.strings["error"]) await message.respond(file=random_msg.media, message=self.strings["result"]) await message.delete()