|
def decrypt_env_variable(env_var): |
|
ciphertext_blob = base64.b64decode(os.environ[env_var]) |
|
response = kms_client.decrypt(CiphertextBlob=ciphertext_blob) |
|
return response["Plaintext"].decode("utf-8") |
|
|
|
slack_signing_secret = decrypt_env_variable("SLACK_SIGNING_SECRET") |
|
slack_events_adapter = SlackEventAdapter(slack_signing_secret, "/slack/events", app) |
|
slack_bot_token = decrypt_env_variable("SLACK_BOT_TOKEN") |
|
slack_client = slack.WebClient(token=slack_bot_token) |
|
|
|
def specify_facilitator(event, context): |
|
if jpholiday.is_holiday(date.today()): |
|
return |
|
member = random.choice(members) |
|
jst = timezone(timedelta(hours=9)) |
|
date_str = str(datetime.now(jst).date()) |
|
mtg_url = f"https://virgini-a.atlassian.net/wiki/spaces/EN/pages/383649527/{date_str}" |
|
reply = f"今日のファシリテーターは、 <@{member}> さんです :sparkles:" |
|
slack_client.api_call( |
|
api_method="chat.postMessage", json={"channel": channel, "text": reply} |
|
) |
|
|
|
|
|
def specify_speakers(event, context): |
|
if jpholiday.is_holiday(date.today()): |
|
return |
|
chosen_members = random.sample(members, 1) |
|
mention_marks = [f"<@{member}>" for member in chosen_members] |
|
reply = f'今日の雑談担当者は、 {" ".join(mention_marks)} です :loudspeaker:' |
|
slack_client.api_call( |
|
api_method="chat.postMessage", json={"channel": channel, "text": reply} |
|
) |