Do you have that code posted somewhere by chance? I would be interested in browsing through it!
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.
Cool yeah. I think the thing I was most interested in was interacting with Bluesky through rust. Is there a decent sdk for that?
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.