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]
|
||||
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 max_track = 278;
|
||||
|
|
@ -146,13 +152,13 @@ async fn main() {
|
|||
|
||||
for track in min_track..max_track + 1 {
|
||||
let track_name = match tracks.get(&track) {
|
||||
None => { String::from("NO TRACK NAME") }
|
||||
Some(name) => { name.clone() }
|
||||
None => String::from("NO TRACK NAME"),
|
||||
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 {
|
||||
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 {
|
||||
// println!("Best Car under RQ {} for track {} ({}): {}", level, track, track_name, 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",
|
||||
max_level, track);
|
||||
// println!("Getting {}", url);
|
||||
let text = get_page(&url).await;
|
||||
if text.len() > 10 {
|
||||
let best_car = parse_best_car(text);
|
||||
|
||||
match detailed {
|
||||
true => {
|
||||
format!(
|
||||
"{}{} {} {} {}: {} ({})",
|
||||
best_car.class,
|
||||
|
|
@ -202,6 +211,18 @@ async fn get_best_car(track: u16, track_name: String, max_level: u16) -> String
|
|||
track_name,
|
||||
best_car.upgrade,
|
||||
)
|
||||
}
|
||||
false => {
|
||||
format!(
|
||||
"{}{} {} {} {}",
|
||||
best_car.class,
|
||||
best_car.rq,
|
||||
best_car.manufacturer,
|
||||
best_car.model,
|
||||
best_car.year,
|
||||
)
|
||||
}
|
||||
}
|
||||
} else {
|
||||
String::from("")
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue