""" This plugin provides a command to get a random fortune message. """ import asyncio import logging import simplematrixbotlib as botlib async def handle_command(room, message, bot, prefix, config): match = botlib.MessageMatch(room, message, bot, prefix) if match.is_not_from_this_bot() and match.prefix() and match.command("fortune"): logging.info("Received !fortune command") try: proc = await asyncio.create_subprocess_exec( '/usr/games/fortune', stdout=asyncio.subprocess.PIPE, stderr=asyncio.subprocess.PIPE ) stdout, stderr = await proc.communicate() if proc.returncode == 0 and stdout: fortune_text = "🃏 " + stdout.decode('UTF-8') else: fortune_text = "🃏 Fortune command failed." await bot.api.send_markdown_message(room.room_id, fortune_text) except Exception as e: logging.error(f"Fortune error: {e}") await bot.api.send_text_message(room.room_id, "Fortune unavailable.") __version__ = "1.0.1" __author__ = "Funguy Bot" __description__ = "Random fortune message" __help__ = """
!fortune – Random fortune

Runs the /usr/games/fortune utility.

"""