]> git.cworth.org Git - turbot/blob - turbot/events.py
Some style fixes pointed out by flake8
[turbot] / turbot / events.py
1 from turbot.blocks import (
2     section_block, text_block, button_block, actions_block
3 )
4
5 def hunt_block(hunt):
6     name = hunt['name']
7     channel_id = hunt['channel_id']
8
9     text = "{}: ".format(name)
10
11     if (channel_id.startswith("placeholder-")):
12         text += "[Slack channel is still being created. Please wait.]"
13     else:
14         text += "<#{}>".format(channel_id)
15
16     return section_block(text_block(text))
17
18 def home(turb, user_id, body):
19     """Returns a view to be published as the turbot home tab for user_id
20
21     The body argument is a dictionary as provided by the Slack request.
22     The return value is a dictionary suitable to be published to the
23     Slack views_publish API."""
24
25     response = turb.db.Table("hunts").scan()
26     hunts = response['Items']
27
28     return {
29         "type": "home",
30         "blocks": [
31             section_block(text_block("*Active hunts*")),
32             *[hunt_block(hunt) for hunt in hunts if hunt['active']],
33             actions_block(button_block("New hunt", "new_hunt"))
34         ]
35     }
36
37 def app_home_opened(turb, body):
38     user_id = body['event']['user']
39     view = home(turb, user_id, body)
40     turb.slack_client.views_publish(user_id=user_id, view=view)
41     return "OK"
42
43 events = {
44     "app_home_opened": app_home_opened
45 }