libs.data.lookup.textdata

lib/data/lookup/textdata.py

 1"""
 2lib/data/lookup/textdata.py
 3"""
 4
 5import libs.global_value as g
 6from libs.utils import dbutil, textutil
 7
 8
 9# slack出力用
10def get_members_list() -> tuple[str, str]:
11    """登録済みのメンバー一覧を取得する(slack出力用)
12
13    Returns:
14        tuple[str, str]:
15        - str: post時のタイトル
16        - str: メンバー一覧
17    """
18
19    title = "登録済みメンバー一覧"
20    padding = textutil.count_padding(list(set(g.member_list.values())))
21    msg = f"# 表示名{" " * (padding - 8)}:登録されている名前 #\n"
22
23    for pname in set(g.member_list.values()):
24        name_list = []
25        for alias, name in g.member_list.items():
26            if name == pname:
27                name_list.append(alias)
28        msg += "{}{}{}\n".format(  # pylint: disable=consider-using-f-string
29            pname,
30            " " * (padding - textutil.len_count(pname)),
31            ", ".join(name_list),
32        )
33
34    return (title, msg)
35
36
37def get_team_list() -> str:
38    """チームの登録状況を表示する(slack出力用)
39
40    Returns:
41        str: slackにpostする内容
42    """
43
44    resultdb = dbutil.get_connection()
45    cur = resultdb.execute("""
46        select
47            team.name,
48            ifnull(
49                group_concat(member.name),
50                "未エントリー"
51            )
52        from
53            team
54        left join member on
55            team.id = member.team_id
56        group by
57            team.name
58    """)
59    team_data = dict(cur.fetchall())
60
61    if len(team_data) == 0:
62        msg = "チームは登録されていません。"
63    else:
64        msg = ""
65        for k, v in team_data.items():
66            msg += f"{k}\n"
67            for p in v.split(","):
68                msg += f"\t{p}\n"
69            msg += "\n"
70
71    return msg
def get_members_list() -> tuple[str, str]:
11def get_members_list() -> tuple[str, str]:
12    """登録済みのメンバー一覧を取得する(slack出力用)
13
14    Returns:
15        tuple[str, str]:
16        - str: post時のタイトル
17        - str: メンバー一覧
18    """
19
20    title = "登録済みメンバー一覧"
21    padding = textutil.count_padding(list(set(g.member_list.values())))
22    msg = f"# 表示名{" " * (padding - 8)}:登録されている名前 #\n"
23
24    for pname in set(g.member_list.values()):
25        name_list = []
26        for alias, name in g.member_list.items():
27            if name == pname:
28                name_list.append(alias)
29        msg += "{}{}{}\n".format(  # pylint: disable=consider-using-f-string
30            pname,
31            " " * (padding - textutil.len_count(pname)),
32            ", ".join(name_list),
33        )
34
35    return (title, msg)

登録済みのメンバー一覧を取得する(slack出力用)

Returns:

tuple[str, str]:

  • str: post時のタイトル
  • str: メンバー一覧
def get_team_list() -> str:
38def get_team_list() -> str:
39    """チームの登録状況を表示する(slack出力用)
40
41    Returns:
42        str: slackにpostする内容
43    """
44
45    resultdb = dbutil.get_connection()
46    cur = resultdb.execute("""
47        select
48            team.name,
49            ifnull(
50                group_concat(member.name),
51                "未エントリー"
52            )
53        from
54            team
55        left join member on
56            team.id = member.team_id
57        group by
58            team.name
59    """)
60    team_data = dict(cur.fetchall())
61
62    if len(team_data) == 0:
63        msg = "チームは登録されていません。"
64    else:
65        msg = ""
66        for k, v in team_data.items():
67            msg += f"{k}\n"
68            for p in v.split(","):
69                msg += f"\t{p}\n"
70            msg += "\n"
71
72    return msg

チームの登録状況を表示する(slack出力用)

Returns:

str: slackにpostする内容