libs.functions.compose.msg_help

libs/functions/compose/msg_help.py

 1"""
 2libs/functions/compose/msg_help.py
 3"""
 4
 5import re
 6import textwrap
 7
 8import libs.global_value as g
 9from cls.timekit import ExtendedDatetime as ExtDt
10from libs.data import lookup
11
12
13def event_message() -> str:
14    """チャンネル内呼び出しキーワード用ヘルプ
15
16    Returns:
17        str: ヘルプメッセージ
18    """
19
20    msg = textwrap.dedent(f"""\
21        *成績記録キーワード*
22        \t{g.cfg.setting.keyword}
23
24        *機能呼び出し*
25        \t`呼び出しキーワード [検索範囲] [対象メンバー] [オプション]`
26
27        \t*成績サマリ*
28        \t\t呼び出しキーワード:{"、".join(g.cfg.results.commandword)}
29        \t\t検索範囲デフォルト:{g.cfg.results.aggregation_range}
30        \t*成績グラフ*
31        \t\t呼び出しキーワード:{"、".join(g.cfg.graph.commandword)}
32        \t\t検索範囲デフォルト:{g.cfg.graph.aggregation_range}
33        \t*ランキング*
34        \t\t呼び出しキーワード:{"、".join(g.cfg.ranking.commandword)}
35        \t\t検索範囲デフォルト:{g.cfg.ranking.aggregation_range}
36        \t\t規定打数デフォルト:全体ゲーム数 × {g.cfg.ranking.stipulated_rate} + 1
37        \t\t出力制限デフォルト:上位 {g.cfg.ranking.ranked}
38        \t*レポート*
39        \t\t呼び出しキーワード:{"、".join(g.cfg.report.commandword)}
40        \t\t検索範囲デフォルト:{g.cfg.report.aggregation_range}
41        \t*メンバー一覧*
42        \t\t呼び出しキーワード:{"、".join(g.cfg.member.commandword)}
43        \t*チーム一覧*
44        \t\t呼び出しキーワード:{"、".join(g.cfg.team.commandword)}
45    """)
46
47    # 検索範囲
48    msg += "\n\n*検索範囲に指定できるキーワード*\n"
49    msg += textwrap.indent(ExtDt.print_range(), "\t")
50
51    # ルール識別子
52    rule = lookup.db.rule_version_range()
53    if rule:
54        msg += "\n\n*ルール識別子*\n"
55        for key, val in rule.items():
56            msg += f"\t{key}{val["first_time"]}{val["last_time"]}\n"
57
58    # メモ機能
59    msg += textwrap.dedent(f"""\
60        *メモ機能*
61        \t`登録キーワード <対象メンバー> <登録ワード>`
62        \t登録キーワード:{g.cfg.setting.remarks_word}
63    """)
64
65    words = lookup.db.regulation_list(1)
66    if words:
67        msg += "\n\t*卓外ポイントワード(個人清算)*\n"
68        for word, ex_point in words:
69            msg += "\t\t{}{}pt\n".format(  # pylint: disable=consider-using-f-string
70                word,
71                str(f"{ex_point:.1f}").replace("-", "▲"),
72            )
73
74    words = [word for word, _ in lookup.db.regulation_list(2)]
75    if g.cfg.undefined_word == 2:
76        words += ["未登録ワードのすべてを個別にカウント"]
77    if words:
78        msg += f"\n\t*個別カウントワード*\n\t\t{'、'.join(words)}\n"
79
80    words = [word for word, _ in lookup.db.regulation_list(0)]
81    if g.cfg.undefined_word == 0:
82        words += ["未登録ワードのすべてを役満としてカウント"]
83    if words:
84        msg += f"\n\t*役満カウントワード*\n\t\t{'、'.join(words)}\n"
85
86    msg = re.sub(r"\n\n\n", "\n\n", msg, flags=re.MULTILINE)
87
88    return msg.rstrip()
def event_message() -> str:
14def event_message() -> str:
15    """チャンネル内呼び出しキーワード用ヘルプ
16
17    Returns:
18        str: ヘルプメッセージ
19    """
20
21    msg = textwrap.dedent(f"""\
22        *成績記録キーワード*
23        \t{g.cfg.setting.keyword}
24
25        *機能呼び出し*
26        \t`呼び出しキーワード [検索範囲] [対象メンバー] [オプション]`
27
28        \t*成績サマリ*
29        \t\t呼び出しキーワード:{"、".join(g.cfg.results.commandword)}
30        \t\t検索範囲デフォルト:{g.cfg.results.aggregation_range}
31        \t*成績グラフ*
32        \t\t呼び出しキーワード:{"、".join(g.cfg.graph.commandword)}
33        \t\t検索範囲デフォルト:{g.cfg.graph.aggregation_range}
34        \t*ランキング*
35        \t\t呼び出しキーワード:{"、".join(g.cfg.ranking.commandword)}
36        \t\t検索範囲デフォルト:{g.cfg.ranking.aggregation_range}
37        \t\t規定打数デフォルト:全体ゲーム数 × {g.cfg.ranking.stipulated_rate} + 1
38        \t\t出力制限デフォルト:上位 {g.cfg.ranking.ranked}
39        \t*レポート*
40        \t\t呼び出しキーワード:{"、".join(g.cfg.report.commandword)}
41        \t\t検索範囲デフォルト:{g.cfg.report.aggregation_range}
42        \t*メンバー一覧*
43        \t\t呼び出しキーワード:{"、".join(g.cfg.member.commandword)}
44        \t*チーム一覧*
45        \t\t呼び出しキーワード:{"、".join(g.cfg.team.commandword)}
46    """)
47
48    # 検索範囲
49    msg += "\n\n*検索範囲に指定できるキーワード*\n"
50    msg += textwrap.indent(ExtDt.print_range(), "\t")
51
52    # ルール識別子
53    rule = lookup.db.rule_version_range()
54    if rule:
55        msg += "\n\n*ルール識別子*\n"
56        for key, val in rule.items():
57            msg += f"\t{key}{val["first_time"]}{val["last_time"]}\n"
58
59    # メモ機能
60    msg += textwrap.dedent(f"""\
61        *メモ機能*
62        \t`登録キーワード <対象メンバー> <登録ワード>`
63        \t登録キーワード:{g.cfg.setting.remarks_word}
64    """)
65
66    words = lookup.db.regulation_list(1)
67    if words:
68        msg += "\n\t*卓外ポイントワード(個人清算)*\n"
69        for word, ex_point in words:
70            msg += "\t\t{}{}pt\n".format(  # pylint: disable=consider-using-f-string
71                word,
72                str(f"{ex_point:.1f}").replace("-", "▲"),
73            )
74
75    words = [word for word, _ in lookup.db.regulation_list(2)]
76    if g.cfg.undefined_word == 2:
77        words += ["未登録ワードのすべてを個別にカウント"]
78    if words:
79        msg += f"\n\t*個別カウントワード*\n\t\t{'、'.join(words)}\n"
80
81    words = [word for word, _ in lookup.db.regulation_list(0)]
82    if g.cfg.undefined_word == 0:
83        words += ["未登録ワードのすべてを役満としてカウント"]
84    if words:
85        msg += f"\n\t*役満カウントワード*\n\t\t{'、'.join(words)}\n"
86
87    msg = re.sub(r"\n\n\n", "\n\n", msg, flags=re.MULTILINE)
88
89    return msg.rstrip()

チャンネル内呼び出しキーワード用ヘルプ

Returns:

str: ヘルプメッセージ