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.
This commit is contained in:
parent
66434d07cf
commit
745f2cd173
2
packaged_helloworld/README.md
Normal file
2
packaged_helloworld/README.md
Normal 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.
|
1
packaged_helloworld/packaged_helloworld/__init__.py
Normal file
1
packaged_helloworld/packaged_helloworld/__init__.py
Normal file
|
@ -0,0 +1 @@
|
|||
__version__ = "1.0.0"
|
5
packaged_helloworld/packaged_helloworld/doc.md
Normal file
5
packaged_helloworld/packaged_helloworld/doc.md
Normal 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.
|
|
@ -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
|
13
packaged_helloworld/setup.py
Normal file
13
packaged_helloworld/setup.py
Normal 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)
|
Loading…
Reference in a new issue