Compare commits

..

1 Commits

Author SHA1 Message Date
annieversary 16c1e7da0a remove unneeded results array 2021-07-24 21:07:36 +02:00
1 changed files with 35 additions and 39 deletions

View File

@ -89,65 +89,61 @@ fn run(
let statuses = client.statuses(&acc.id, None)?; let statuses = client.statuses(&acc.id, None)?;
let regex = Regex::new(regex).unwrap(); let regex = Regex::new(regex).unwrap();
let mut results = Vec::new(); let mut count = 0;
if verbose { println!("\n\nResults:\n");
println!("Searching...");
}
// Search through statuses // Search through statuses
for status in statuses.items_iter() { for status in statuses.items_iter() {
// Add it to results if it matches and it isn't a retoot // Add it to results if it matches and it isn't a retoot
// or if it matches and isn't a retoot // or if it matches and isn't a retoot
if status_matches(&status, &regex) && (include_retoots || status.reblog.is_none()) { if status_matches(&status, &regex) && (include_retoots || status.reblog.is_none()) {
results.push(status); print_status(&status, verbose);
count += 1;
} }
// If there's a limit of results, check it and exit // If there's a limit of results, check it and exit
if let Some(max) = max_statuses { if let Some(max) = max_statuses {
if results.len() >= max { if count >= max {
break; break;
} }
} }
} }
println!("\n\nResults:\n"); println!("Found {} results", count);
// Print results
for status in &results {
if !status.spoiler_text.is_empty() {
println!("CW: {}", status.spoiler_text);
}
println!("Content: {}", status.content);
// Print actual url if it's a retoot
if let Some(retoot) = &status.reblog {
if let Some(url) = &retoot.url {
println!("Url: {}", url);
}
} else if let Some(url) = &status.url {
println!("Url: {}", url);
}
// Print some extra info
if verbose {
println!("Created at: {}", status.created_at);
if let Some(retoot) = &status.reblog {
println!("Is retoot: yes ({})", retoot.account.acct);
} else {
// We don't want to print these if it's a retoot
println!("Favs: {}", status.favourites_count);
println!("Retoots: {}", status.reblogs_count);
}
}
println!();
}
println!("Found {} results", results.len());
Ok(()) Ok(())
} }
fn print_status(status: &Status, verbose: bool) {
if !status.spoiler_text.is_empty() {
println!("CW: {}", status.spoiler_text);
}
println!("Content: {}", status.content);
// Print actual url if it's a retoot
if let Some(retoot) = &status.reblog {
if let Some(url) = &retoot.url {
println!("Url: {}", url);
}
} else if let Some(url) = &status.url {
println!("Url: {}", url);
}
// Print some extra info
if verbose {
println!("Created at: {}", status.created_at);
if let Some(retoot) = &status.reblog {
println!("Is retoot: yes ({})", retoot.account.acct);
} else {
// We don't want to print these if it's a retoot
println!("Favs: {}", status.favourites_count);
println!("Retoots: {}", status.reblogs_count);
}
}
println!();
}
fn status_matches(status: &Status, regex: &Regex) -> bool { fn status_matches(status: &Status, regex: &Regex) -> bool {
regex.is_match(&status.content) || regex.is_match(&status.spoiler_text) regex.is_match(&status.content) || regex.is_match(&status.spoiler_text)
} }