mostr-zulip-bot/zulip_bots/zulip_bots/bots/followup/followup.py
PIG208 9ce7c52a10 pyupgrade: Reformat with --py36-plus.
This includes mainly fixes of string literals using f-strings or
.format(...), as well as unpacking of list comprehensions.
2021-06-02 18:45:57 -07:00

61 lines
2.1 KiB
Python

# See readme.md for instructions on running this code.
from typing import Dict
from zulip_bots.lib import BotHandler
class FollowupHandler:
"""
This plugin facilitates creating follow-up tasks when
you are using Zulip to conduct a virtual meeting. It
looks for messages starting with '@mention-bot'.
In this example, we write follow up items to a special
Zulip stream called "followup," but this code could
be adapted to write follow up items to some kind of
external issue tracker as well.
"""
def usage(self) -> str:
return """
This plugin will allow users to flag messages
as being follow-up items. Users should preface
messages with "@mention-bot".
Before running this, make sure to create a stream
called "followup" that your API user can send to.
"""
def initialize(self, bot_handler: BotHandler) -> None:
self.config_info = bot_handler.get_config_info("followup", optional=False)
self.stream = self.config_info.get("stream", "followup")
def handle_message(self, message: Dict[str, str], bot_handler: BotHandler) -> None:
if message["content"] == "":
bot_response = (
"Please specify the message you want to send to followup stream after @mention-bot"
)
bot_handler.send_reply(message, bot_response)
elif message["content"] == "help":
bot_handler.send_reply(message, self.usage())
else:
bot_response = self.get_bot_followup_response(message)
bot_handler.send_message(
dict(
type="stream",
to=self.stream,
subject=message["sender_email"],
content=bot_response,
)
)
def get_bot_followup_response(self, message: Dict[str, str]) -> str:
original_content = message["content"]
original_sender = message["sender_email"]
temp_content = f"from {original_sender}: "
new_content = temp_content + original_content
return new_content
handler_class = FollowupHandler