Introduced switch for detailed track output
This commit is contained in:
parent
e2efe052b5
commit
a495f4d4d7
1 changed files with 41 additions and 20 deletions
33
src/main.rs
33
src/main.rs
|
|
@ -111,7 +111,13 @@ fn parse_tracks(file_name: &str) -> HashMap<u16, String> {
|
||||||
|
|
||||||
#[tokio::main]
|
#[tokio::main]
|
||||||
async fn main() {
|
async fn main() {
|
||||||
let args: Vec<_> = env::args().collect();
|
let mut args: Vec<_> = env::args().collect();
|
||||||
|
|
||||||
|
let mut detailed = false;
|
||||||
|
if let Some(index_detailed) = args.iter().position(|x| *x == String::from("-d")) {
|
||||||
|
detailed = true;
|
||||||
|
args.swap_remove(index_detailed);
|
||||||
|
}
|
||||||
|
|
||||||
let mut min_track = 4;
|
let mut min_track = 4;
|
||||||
let mut max_track = 278;
|
let mut max_track = 278;
|
||||||
|
|
@ -146,13 +152,13 @@ async fn main() {
|
||||||
|
|
||||||
for track in min_track..max_track + 1 {
|
for track in min_track..max_track + 1 {
|
||||||
let track_name = match tracks.get(&track) {
|
let track_name = match tracks.get(&track) {
|
||||||
None => { String::from("NO TRACK NAME") }
|
None => String::from("NO TRACK NAME"),
|
||||||
Some(name) => { name.clone() }
|
Some(name) => name.clone(),
|
||||||
};
|
};
|
||||||
let best_car = get_best_car(track, track_name.clone(), max_rq).await;
|
let best_car = get_best_car(track, track_name.clone(), max_rq, detailed).await;
|
||||||
if best_car.len() > 10 {
|
if best_car.len() > 10 {
|
||||||
for level in min_rq..max_rq + 1 {
|
for level in min_rq..max_rq + 1 {
|
||||||
let best_car = get_best_car(track, track_name.clone(), level).await;
|
let best_car = get_best_car(track, track_name.clone(), level, detailed).await;
|
||||||
if best_car.len() > 10 {
|
if best_car.len() > 10 {
|
||||||
// println!("Best Car under RQ {} for track {} ({}): {}", level, track, track_name, best_car);
|
// println!("Best Car under RQ {} for track {} ({}): {}", level, track, track_name, best_car);
|
||||||
keepers.insert(best_car);
|
keepers.insert(best_car);
|
||||||
|
|
@ -185,13 +191,16 @@ fn parse_argument(args: &Vec<String>, index: usize, min: u16, max: u16) -> u16 {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
async fn get_best_car(track: u16, track_name: String, max_level: u16) -> String {
|
async fn get_best_car(track: u16, track_name: String, max_level: u16, detailed: bool) -> String {
|
||||||
let url = format!("https://topdrives.club/ajax/load-best-vehicles?sort_by=level&sortorder=desc&prize=all&level=10%3B{}&acceleration=1%3B50&grip=40%3B110&year=1900%3B2030&seats_count=1%3B9&track={}&page=0",
|
let url = format!("https://topdrives.club/ajax/load-best-vehicles?sort_by=level&sortorder=desc&prize=all&level=10%3B{}&acceleration=1%3B50&grip=40%3B110&year=1900%3B2030&seats_count=1%3B9&track={}&page=0",
|
||||||
max_level, track);
|
max_level, track);
|
||||||
// println!("Getting {}", url);
|
// println!("Getting {}", url);
|
||||||
let text = get_page(&url).await;
|
let text = get_page(&url).await;
|
||||||
if text.len() > 10 {
|
if text.len() > 10 {
|
||||||
let best_car = parse_best_car(text);
|
let best_car = parse_best_car(text);
|
||||||
|
|
||||||
|
match detailed {
|
||||||
|
true => {
|
||||||
format!(
|
format!(
|
||||||
"{}{} {} {} {}: {} ({})",
|
"{}{} {} {} {}: {} ({})",
|
||||||
best_car.class,
|
best_car.class,
|
||||||
|
|
@ -202,6 +211,18 @@ async fn get_best_car(track: u16, track_name: String, max_level: u16) -> String
|
||||||
track_name,
|
track_name,
|
||||||
best_car.upgrade,
|
best_car.upgrade,
|
||||||
)
|
)
|
||||||
|
}
|
||||||
|
false => {
|
||||||
|
format!(
|
||||||
|
"{}{} {} {} {}",
|
||||||
|
best_car.class,
|
||||||
|
best_car.rq,
|
||||||
|
best_car.manufacturer,
|
||||||
|
best_car.model,
|
||||||
|
best_car.year,
|
||||||
|
)
|
||||||
|
}
|
||||||
|
}
|
||||||
} else {
|
} else {
|
||||||
String::from("")
|
String::from("")
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue