opensky-network 0.2.1

A simple Rust wrapper library around the OpenSky Network API
Documentation
use chrono::{Local, SecondsFormat};
use colored::Colorize;
use log::{error, info, LevelFilter};
use std::{
    env,
    io::Write,
    time::{SystemTime, UNIX_EPOCH},
};

use opensky_network::OpenSkyApi;
#[tokio::main]
async fn main() {
    dotenv::dotenv().ok();

    env_logger::Builder::new()
        .format(|buf, record| {
            let time = Local::now()
                .to_rfc3339_opts(SecondsFormat::Millis, true)
                .as_str()
                .bright_blue();
            let level = record.level().as_str();
            let colored_level = match record.level().to_level_filter() {
                LevelFilter::Info => level.green(),
                LevelFilter::Warn => level.yellow(),
                LevelFilter::Error => level.red(),
                _ => level.into(),
            };
            writeln!(buf, "{} [{}] - {}", time, colored_level, record.args(),)
        })
        .filter(None, LevelFilter::Debug)
        .init();

    let username = env::var("OPENSKY_USER").expect("OPENSKY_USER environment variable not set");
    let password = env::var("OPENSKY_PASS").expect("OPENSKY_PASS environment variable not set");

    let opensky_api = OpenSkyApi::with_login(username, password);

    let now = SystemTime::now()
        .duration_since(UNIX_EPOCH)
        .unwrap()
        .as_secs();
    info!("now: {}", now);
    let mut flights_request = opensky_api.get_flights(now - 7 * 24 * 60 * 60, now);
    flights_request.by_aircraft("8990ed".to_string());

    let result = flights_request.send().await;
    match result {
        Ok(flights) => {
            info!("get result: {:#?}", flights);
            info!("Get {} flights", flights.len());
        }
        Err(e) => {
            error!("Error: {:?}", e);
        }
    }
}