Now we will be able to execute `zulip-run-bot` with the `-r` argument
to search for and run bots from the `zulip_bots.registry` entry_point.
Each entry point should have the name correspond to the bot name,
and have the value be the bot module. E.g, an Python package for a
bot called "packaged_bot" should have an `entry_points` setup like
the following:
setup(
...
entry_points={
"zulip_bot.registry":[
"packaged_bot=packaged_bot.packaged_bot"
]
}
...
)
whose file structure may look like this:
packaged_bot/
├───packaged_bot/
| ├───packaged_bot.py # The bot module
| ├───test_packaged_bot.py
| ├───packaged_bot.conf
| └───doc.md
└───setup.py # Register the entry points here
Add test case.
|
||
|---|---|---|
| .. | ||
| zulip_bots | ||
| architecture.md | ||
| README.md | ||
| setup.py | ||
Zulip bots
This directory contains the source code for the zulip_bots PyPI package.
The Zulip documentation has guides on using Zulip's bot system and writing your own bots.
Directory structure
zulip_bots # This directory
├───zulip_bots # `zulip_bots` package.
│ ├───bots/ # Actively maintained and tested bots.
│ ├───bots_unmaintained/ # Unmaintained, potentially broken bots.
│ ├───game_handler.py # Handles game-related bots.
│ ├───lib.py # Backbone of run.py
│ ├───provision.py # Creates a development environment.
│ ├───run.py # Used to run bots.
│ ├───simple_lib.py # Used for terminal testing.
│ ├───test_lib.py # Backbone for bot unit tests.
│ ├───test_run.py # Unit tests for run.py
│ └───terminal.py # Used to test bots in the command line.
└───setup.py # Script for packaging.