From bc715b12204714dc8046f07387210852026b47b9 Mon Sep 17 00:00:00 2001 From: Arslaan Pathan Date: Thu, 16 Jul 2026 22:43:19 +1200 Subject: Make it send to different channels --- src/utils.py | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) (limited to 'src/utils.py') diff --git a/src/utils.py b/src/utils.py index 1efc693..a42539f 100644 --- a/src/utils.py +++ b/src/utils.py @@ -1,3 +1,6 @@ +import random +from slack_sdk.web.async_client import AsyncWebClient + def generate_voting_blocks(deployment_id: int, message: str, approve_count: int, reject_count: int, voting_enabled: bool): blocks = [ { @@ -43,3 +46,25 @@ def generate_voting_blocks(deployment_id: int, message: str, approve_count: int, }) return blocks + +async def get_random_channel(oauth_token: str): + client = AsyncWebClient(token=oauth_token) + + try: + response = await client.conversations_list(types="public_channel", limit=200, exclude_archived=True) + + channels = [c for c in response.get("channels", []) if c.get("is_member", False)] + + if not channels: + return None + + channel_approved = False + while not channel_approved: + channel = random.choice(channels) + # FIXME: Check if CM-approved here + channel_approved = True + + return channel + except Exception as e: + print(f"random channel is broken, we might be cooked: {e}") + return None -- cgit v1.2.3