Something went wrong. Try again.
small bsky embedder @ boobsky.app - kinda mid but works - mirror of git.fomx.gay/rooot/embedthing
Something went wrong. Try again.
1.5 kB · 60 lines
Rust
at main
12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061mod api;mod bsky;mod meow;mod srv;
use bsky_sdk::BskyAgent;use bsky_sdk::agent::config::FileStore;use rocket::{Config, routes};use std::net::Ipv4Addr;use std::path::Path;
struct ManagedBskyAgent { agent: BskyAgent,}
#[rocket::main]async fn main() -> anyhow::Result<()> { let agent_builder = BskyAgent::builder();
let agent; if !Path::new(".session.json").is_file() { println!("logging in with creds from env"); agent = agent_builder.build().await?; agent .login( dotenvy::var("BS_USERNAME").unwrap(), dotenvy::var("BS_PASSWORD").unwrap(), ) .await?; agent .to_config() .await .save(&FileStore::new(".session.json")) .await?; } else { agent = agent_builder .config(bsky_sdk::agent::config::Config::load(&FileStore::new(".session.json")).await?) .build() .await?; }
let sess = agent.api.com.atproto.server.get_session().await; println!("session: {:?}", sess);
let figment = Config::figment() .merge(("port", 42069)) .merge(("address", Ipv4Addr::from([0, 0, 0, 0])));
let _rocket = rocket::build() .mount( "/", routes![srv::index, srv::version, bsky::profile_post, api::oembed], ) .manage(ManagedBskyAgent { agent }) .configure(figment) .launch() .await?;
Ok(())}