zulip_bots: Add a boilerplate bot for external bots.

Add packaged_helloworld as an example of a PyPI package setup for
an external zulip bot that can be installed via pip and lanuched
without the need to include it in the zulip_bots/bots directory.
rollcake
PIG208 2021-07-21 22:10:05 +08:00 committed by Tim Abbott
parent 66434d07cf
commit 745f2cd173
5 changed files with 51 additions and 0 deletions

View File

@ -0,0 +1,2 @@
This is a boilerplate package for a Zulip bot that can be installed from pip
and launched using the `zulip-run-bots` command.

View File

@ -0,0 +1 @@
__version__ = "1.0.0"

View File

@ -0,0 +1,5 @@
Simple Zulip bot that will respond to any query with a "beep boop".
The packaged_helloworld bot is a boilerplate bot that can be used as a
template for more sophisticated/evolved Zulip bots that can be
installed separately.

View File

@ -0,0 +1,30 @@
# See readme.md for instructions on running this code.
from typing import Any, Dict
import packaged_helloworld
from zulip_bots.lib import BotHandler
__version__ = packaged_helloworld.__version__
class HelloWorldHandler:
def usage(self) -> str:
return """
This is a boilerplate bot that responds to a user query with
"beep boop", which is robot for "Hello World".
This bot can be used as a template for other, more
sophisticated, bots that can be installed separately.
"""
def handle_message(self, message: Dict[str, Any], bot_handler: BotHandler) -> None:
content = "beep boop" # type: str
bot_handler.send_reply(message, content)
emoji_name = "wave" # type: str
bot_handler.react(message, emoji_name)
return
handler_class = HelloWorldHandler

View File

@ -0,0 +1,13 @@
import packaged_helloworld
from setuptools import find_packages, setup
package_info = {
"name": "packaged_helloworld",
"version": packaged_helloworld.__version__,
"entry_points": {
"zulip_bots.registry": ["packaged_helloworld=packaged_helloworld.packaged_helloworld"],
},
"packages": find_packages(),
}
setup(**package_info)