Compare commits
1 Commits
ef1fdb5f36
...
main
Author | SHA1 | Date |
---|---|---|
annieversary | 16c1e7da0a |
74
src/main.rs
74
src/main.rs
|
@ -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, ®ex) && (include_retoots || status.reblog.is_none()) {
|
if status_matches(&status, ®ex) && (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)
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue