use base64::Engine;
use dotenvy_macro::dotenv;
use flopper::prelude::*;
use tracing::{info, Level};
use tracing_subscriber::FmtSubscriber;
#[tokio::main]
async fn main() -> anyhow::Result<()> {
let key: &str = dotenv!("KEY");
let secret: &str = dotenv!("SECRET");
tracing::subscriber::set_global_default(
FmtSubscriber::builder()
.with_max_level(Level::INFO)
.pretty()
.without_time()
.finish(),
)
.expect("Fail to set global default subscriber");
let flopper = Flopper::build(key.to_string(), secret.to_string(), None, None).await?;
let mut params = Params::default();
params.q("cat".to_string());
let params = Params::new(GenType::Generate, 1, 512, 512, "cat".to_string());
let info = flopper.push(params).await?;
let images = flopper.try_fetch(info).await?;
let image = images[0].clone();
let image = base64::engine::general_purpose::STANDARD.decode(image)?;
std::fs::write("examples/usual/test_image.png", image)?;
info!("Done!");
Ok(())
}