def send_new_blogs()

in check-blogs/main.py [0:0]


def send_new_blogs():
    blog_map = {}
    with futures.ThreadPoolExecutor() as executor:
        blogs_by_categories = executor.map(get_blog_posts, rss_urls)
    for category_blogs in blogs_by_categories:
        for guid, blog in category_blogs.items():
            if blog:
                blog_map[guid] = blog
    new_blogs_map = get_new_blog_posts(blog_map)
    with futures.ThreadPoolExecutor() as executor:
        executor.map(summarize_blog, new_blogs_map.values())
    subscriptions_ref = firestore_client.collection("space_blog_subscriptions")
    for blog in new_blogs_map.values():
        print(f"New blog found: {blog['link']} in {blog['category_name']}")
        product_doc = subscriptions_ref.document(blog["category_name"]).get()
        if product_doc.exists:
            spaces_subscribed = product_doc.to_dict().get("spaces_subscribed", [])
            if blog.get("summary"):
                for space_id in spaces_subscribed:
                    publish_to_pubsub(space_id, blog)
            else:
                print(f"Failed to generate summary for: {blog['link']}")

    futures.wait(publish_futures, return_when=futures.ALL_COMPLETED)

    if new_blogs_map:  # Keep this part to update the Firestore document
        doc_ref = firestore_client.collection("cloud-release-notes").document("blogs")
        doc_ref.set(blog_map)