diggan 3 days ago

Not right now, no. It's fairly simple (login to Bluesky, read RSS, save item IDs to a text file, post if there are any new feed items, close program then systemd timers run this every N minutes) + pretty specific to AEMET and their formats.

If there is interest I guess I could spend some hours to make it a bit more generic and publish the source.

1
skiman10 3 days ago

Cool yeah. I think the thing I was most interested in was interacting with Bluesky through rust. Is there a decent sdk for that?

diggan 3 days ago

The meat is this, using bsky-sdk + atrium-api from crates:

    let agent = BskyAgent::builder().build().await?;
    agent
        .login("username.bsky.social", "X")
        .await?;
    let rt = RichText::new_with_detect_facets(msg).await?;
    let record = RecordData {
        text: rt.text,
        created_at: atrium_api::types::string::Datetime::now(),
        facets: rt.facets,
    };
    agent.create_record(record).await?;
Works well enough. It's a bit on the lower end of the "abstraction ladder", there might be more user-friendly libraries for doing this even easier now.