Yet Another (Python) Bot Library for euphoria
Find a file
2019-04-12 11:37:36 +00:00
examples Add README 2019-04-12 00:28:51 +00:00
yaboli Implement !uptime 2019-04-12 11:37:36 +00:00
.gitignore Start rewrite (yet again) 2019-04-06 09:02:09 +00:00
example.py Start rewrite (yet again) 2019-04-06 09:02:09 +00:00
info.txt Add debug logging 2019-04-06 23:44:42 +00:00
LICENSE Clean up 2019-04-11 23:51:28 +00:00
mypy.ini Clean up 2019-04-06 17:17:43 +00:00
README.md Implement !uptime 2019-04-12 11:37:36 +00:00
requirements.txt Start rewrite (yet again) 2019-04-06 09:02:09 +00:00

Yaboli

Yaboli (Yet Another Bot Library) is a Python library for creating bots for euphoria.io.

Soon, markdown files containing documentation and troubleshooting info will be available.

Example echo bot

A simple echo bot that conforms to the botrulez can be written like so:

class EchoBot(yaboli.Bot):
    DEFAULT_NICK = "EchoBot"
    HELP_GENERAL = "/me echoes back what you said"
    HELP_SPECIFIC = [
            "This bot only has one command:",
            "!echo <text>  reply with exactly <text>",
    ]

    def __init__(self):
        super().__init__()
        self.register_botrulez()
        self.register_general("echo", self.cmd_echo)

    async def started(self):
        await self.join("test")

    async def cmd_echo(self, room, message, args):
        await message.reply(args.raw)

When joining a room, the bot sets its nick to the value in DEFAULT_NICK.

The help command from the botrulez uses the HELP_GENERAL and HELP_SPECIFIC fields.

In the __init__ function, the bot's commands are registered.

The started function is called when the bot has been started and is ready to connect to rooms and do other bot stuff. It can be used to load config files or directly connect to rooms.

In the cmd_echo function, the echo command is implemented. In this case, the bot replies to the message containing the command with the raw argument string, i. e. the text between the end of the "!echo" and the end of the whole message.

TODOs

  • implement !kill
  • implement !restart and add an easier way to run bots
  • untruncate LiveMessage-s
  • config file support for bots, used by default
  • package in a distutils-compatible way (users should be able to install yaboli using pip install git+https://github.com/Garmelon/yaboli)
  • document yaboli (markdown files in a "docs" folder?)
  • make it easier to enable log messages
  • cookie support
  • fancy argument parsing
  • document new classes (docstrings, maybe comments)
  • write project readme
  • write examples
  • implement !uptime for proper botrulez conformity