integrations.slack.events.home_tab.home
integrations/slack/events/home_tab/home.py
1""" 2integrations/slack/events/home_tab/home.py 3""" 4 5import logging 6 7from integrations.slack.adapter import ServiceAdapter 8from integrations.slack.events.handler_registry import register 9from integrations.slack.events.home_tab import ui_parts 10 11 12def build_main_menu(adapter: ServiceAdapter): 13 """メインメニューを生成する 14 15 Args: 16 adapter (ServiceAdapter): インターフェースアダプタ 17 """ 18 19 adapter.conf.tab_var["screen"] = "MainMenu" 20 adapter.conf.tab_var["no"] = 0 21 adapter.conf.tab_var["view"] = {"type": "home", "blocks": []} 22 ui_parts.button(adapter, text="成績サマリ", action_id="summary_menu") 23 ui_parts.button(adapter, text="ランキング", action_id="ranking_menu") 24 ui_parts.button(adapter, text="個人成績", action_id="personal_menu") 25 ui_parts.button(adapter, text="直接対戦", action_id="versus_menu") 26 27 28@register 29def register_home_handlers(app, adapter: ServiceAdapter): 30 """ホームタブ操作イベント""" 31 32 @app.action("actionId-back") 33 def handle_action(ack, body): 34 """戻るボタン 35 36 Args: 37 ack (_type_): ack 38 body (dict): イベント内容 39 """ 40 41 ack() 42 logging.trace(body) # type: ignore 43 44 build_main_menu(adapter) 45 adapter.api.appclient.views_publish( 46 user_id=adapter.conf.tab_var["user_id"], 47 view=adapter.conf.tab_var["view"], 48 ) 49 50 @app.action("modal-open-period") 51 def handle_open_modal_button_clicks(ack, body): 52 """検索範囲設定選択イベント 53 54 Args: 55 ack (_type_): ack 56 body (dict): イベント内容 57 client (slack_bolt.App.client): オブジェクト 58 """ 59 60 ack() 61 62 adapter.api.appclient.views_open( 63 trigger_id=body["trigger_id"], 64 view=ui_parts.modalperiod_selection(adapter), 65 )
register_home_handlers =
None
ホームタブ操作イベント