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}
)
view raw mtg-bot.py hosted with ❤ by GitHub