Something went wrong. Try again.
silly little cli tool and UI I overengineered for an event clxxiii.tngl.io/pprace
Something went wrong. Try again.
123456789101112131415161718192021222324252627282930313233343536373839404142434445use std::process::exit;
use chrono::Utc;
use crate::{ Cli, InitArgs, data::{Event, Snapshot, User}, osu, redis,};
pub fn init(cli: &Cli, args: &InitArgs) { let Ok(rosu) = osu::Client::open(&cli.osu) else { exit(1) };
let Ok(redis) = redis::Client::open(&cli.redis_url) else { exit(1) };
let Ok(osu_users) = rosu.get_users(&args.user_ids) else { exit(1) }; let users: Vec<User> = osu_users.iter().map(|x| x.into()).collect();
let mut event = Event { users, end_date: args.duration.map(|x| Utc::now() + *x), ..Default::default() };
let Ok(snapshot) = Snapshot::create(&event.users, &osu_users) else { exit(1) }; match redis.set_snapshot(&args.event_name, &snapshot) { Ok(_) => (), Err(_) => exit(1), }; match event.add_snapshot(snapshot) { Ok(_) => (), Err(_) => exit(1), };
redis.set_event(&args.event_name, event).unwrap()}