RSS feed for latest topics seem to be broken

Hi,
I'm was using RSS to read the topics, but it seems that it got broken a few days ago:

https://users.rust-lang.org/latest.rss

The posts RSS seems to be fine:

https://users.rust-lang.org/posts.rss

1 Like

In the meantime, I hacked a script that converts Discourse's JSON API to JSON FEED which is understood by RSS Guard reader.

(I hope posting Python is not an instant ban here ;-))

#!/bin/env python3
import json
import sys


def main():
    urlo_json = sys.stdin.read()
    data = json.loads(urlo_json)
    json_feed = {
        "version": "https://jsonfeed.org/version/1",
        "title": "Rust - Latest topics",
        "description": "Latest posts",
        "home_page_url": "https://users.rust-lang.org",
        "feed_url": "https://users.rust-lang.org/latest.json",
        "items": [],
    }

    for item in data["topic_list"]["topics"]:
        # Find the original poster user ID
        op = [x for x in item["posters"] if "Original Poster" in x["description"]][0]

        # Find the original poster's username from the list of users
        op = [x for x in data["users"] if x["id"] == op["user_id"]][0]

        json_feed["items"].append(
            {
                "id": item["id"],
                "url": f"https://users.rust-lang.org/t/{item['slug']}",
                "title": item["fancy_title"],
                "date_published": item["created_at"],
                "date_modified": item["last_posted_at"],
                "author": {
                    "name": op["username"],
                },
            }
        )
    print(json.dumps(json_feed))


if __name__ == "__main__":
    main()
1 Like

Probably has to do with the fact that all posts without a category are currently in a weird limbo state and unaccessible.

4 Likes

The issue has been fixed, the RSS feed is working now.

1 Like