app

app.py - 麻雀のスコアを記録し、集計して表示するツール

help: usage: app.py [-h] ...

options:
    -h, --help            show this help message and exit
    -c, --config CONFIG   設定ファイル(default: config.ini)
    -s, --service {slack,discord,standard_io,std,web,flask}
                          連携先サービス

logging options:
    -d, --debug           デバッグレベル(-d, -dd)
    -v, --verbose         動作ログ出力レベル(-v, -vv, -vvv)
    --moderate            ログレベルがエラー以下のもを非表示
    --notime              ログフォーマットから日時を削除

Only allowed when --service=standard_io:
    --text TEXT           input text strings

Only allowed when --service=web:
    --host HOST           listen  address(default: 127.0.0.1)
    --port PORT           bind port(default: 8000)
 1#!/usr/bin/env python3
 2"""
 3app.py - 麻雀のスコアを記録し、集計して表示するツール
 4
 5help:
 6    usage: app.py [-h] ...
 7
 8    options:
 9        -h, --help            show this help message and exit
10        -c, --config CONFIG   設定ファイル(default: config.ini)
11        -s, --service {slack,discord,standard_io,std,web,flask}
12                              連携先サービス
13
14    logging options:
15        -d, --debug           デバッグレベル(-d, -dd)
16        -v, --verbose         動作ログ出力レベル(-v, -vv, -vvv)
17        --moderate            ログレベルがエラー以下のもを非表示
18        --notime              ログフォーマットから日時を削除
19
20    Only allowed when --service=standard_io:
21        --text TEXT           input text strings
22
23    Only allowed when --service=web:
24        --host HOST           listen  address(default: 127.0.0.1)
25        --port PORT           bind port(default: 8000)
26"""
27
28import sys
29from typing import TYPE_CHECKING, cast
30
31import libs.global_value as g
32from libs.bootstrap import configuration
33from libs.types import ServiceType
34
35if TYPE_CHECKING:
36    from integrations.discord.adapter import ServiceAdapter as discord_adapter
37    from integrations.slack.adapter import ServiceAdapter as slack_adapter
38    from integrations.standard_io.adapter import ServiceAdapter as std_adapter
39    from integrations.web.adapter import ServiceAdapter as web_adapter
40
41
42if __name__ == "__main__":
43    configuration.setup()
44
45    match g.cfg.selected_service:
46        case ServiceType.SLACK:
47            import integrations.slack.events.handler as slack
48
49            slack.main(cast("slack_adapter", g.adapter))
50        case ServiceType.DISCORD:
51            import integrations.discord.events.handler as discord
52
53            discord.main(cast("discord_adapter", g.adapter))
54        case ServiceType.STANDARD_IO:
55            import integrations.standard_io.events.handler as standard_io
56
57            standard_io.main(cast("std_adapter", g.adapter))
58        case ServiceType.WEB:
59            import integrations.web.events.handler as webapp
60
61            webapp.main(cast("web_adapter", g.adapter))
62        case _:
63            sys.exit()