# ------------------------------------------------------------
# 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()