in chat-client/main.py [0:0]
def create_card_message(pubsub_message):
if "release_note" in pubsub_message:
release_note = pubsub_message.get("release_note")
title = f"New Release from {release_note.get('product')}"
subtitle = release_note.get("date")
# Replace html header <h3> with <b> formatting that Chat API supports
# https://developers.google.com/apps-script/add-ons/concepts/widgets#text_formatting
card_msg = re.sub(
r"<h3>(?P<header>.*?)</h3>", r"<b>\g<header></b>", release_note.get("html")
)
link = release_note.get("link")
elif "blog" in pubsub_message:
blog = pubsub_message.get("blog")
title = f"New Blog from {blog.get('category_name')}"
subtitle = blog.get("date")
card_msg = f"<b>{blog.get('title')}</b><br><br>{blog.get('summary')}"
link = blog.get("link")
else:
title = "An Error Occurred"
subtitle = ""
card_msg = f"An unexpected error occurred."
link = ""
return {
"thread": {"threadKey": f"{link}"},
"cardsV2": [
{
"card": {
"header": {
"title": f"{title}",
"subtitle": subtitle,
},
"sections": [
{
"widgets": [
{
"textParagraph": {
"text": card_msg,
}
},
{"divider": {}},
{
"decoratedText": {
"text": f"<a href='{link}'>Read more</a>",
"startIcon": {
"materialIcon": {
"name": "link",
}
},
}
},
],
}
],
}
}
],
}