Guard public channel readiness in systemd tooling
This commit is contained in:
@@ -51,6 +51,35 @@ def get_channel_ids() -> list[int]:
|
||||
return [int(channel["id"]) for channel in iter_channels()]
|
||||
|
||||
|
||||
def get_public_channel_ids(
|
||||
selected_channel_ids: Iterable[int] | None = None,
|
||||
*,
|
||||
client_visible_only: bool = False,
|
||||
) -> list[int]:
|
||||
selected = None if selected_channel_ids is None else {int(channel_id) for channel_id in selected_channel_ids}
|
||||
result: list[int] = []
|
||||
|
||||
for channel in iter_channels():
|
||||
channel_id = int(channel["id"])
|
||||
if selected is not None and channel_id not in selected:
|
||||
continue
|
||||
if not channel.get("public"):
|
||||
continue
|
||||
if client_visible_only and not channel.get("client_visible"):
|
||||
continue
|
||||
result.append(channel_id)
|
||||
|
||||
return result
|
||||
|
||||
|
||||
def has_public_channel(
|
||||
selected_channel_ids: Iterable[int] | None = None,
|
||||
*,
|
||||
client_visible_only: bool = False,
|
||||
) -> bool:
|
||||
return bool(get_public_channel_ids(selected_channel_ids, client_visible_only=client_visible_only))
|
||||
|
||||
|
||||
def get_channel_map() -> dict[int, dict[int, str]]:
|
||||
result: dict[int, dict[int, str]] = {}
|
||||
for channel in iter_channels():
|
||||
|
||||
Reference in New Issue
Block a user