This commit is contained in:
kageru 2019-10-31 11:45:16 +01:00
parent 8157ab760d
commit 34de761858
Signed by: kageru
GPG Key ID: 8282A2BEA4ADA3D2
4 changed files with 10 additions and 11 deletions

View File

@ -9,7 +9,7 @@ pub fn query_apt(ctx: Context, msg: Message, args: Vec<&str>) {
&format!("https://sources.debian.org/api/src/{}/", &query), &format!("https://sources.debian.org/api/src/{}/", &query),
|_e| EMPTY_RESULT, |_e| EMPTY_RESULT,
); );
if response.versions.len() == 0 { if response.versions.is_empty() {
send(msg.channel_id, "No results", &ctx); send(msg.channel_id, "No results", &ctx);
return; return;
} }
@ -24,7 +24,7 @@ fn convert_versions(res: Response) -> Vec<Package> {
packages.push(Package { packages.push(Package {
area: version.area.clone(), area: version.area.clone(),
name: res.package.clone(), name: res.package.clone(),
suite: suite, suite,
version: version.version.clone(), version: version.version.clone(),
}); });
} }

View File

@ -24,14 +24,13 @@ impl EventHandler for Handler {
if msg.content.starts_with(PREFIX) { if msg.content.starts_with(PREFIX) {
if let Some(command) = COMMANDS if let Some(command) = COMMANDS
.iter() .iter()
.filter(|&c| msg.content.starts_with(&c.trigger)) .find(|&c| msg.content.starts_with(&c.trigger))
.next()
{ {
let content = msg.content.clone(); let content = msg.content.clone();
let mut args = content.split_whitespace().collect::<Vec<_>>(); let mut args = content.split_whitespace().collect::<Vec<_>>();
// the prefix + trigger // the prefix + trigger
args.remove(0); args.remove(0);
if args.len() == 0 { if args.is_empty() {
send( send(
msg.channel_id, msg.channel_id,
"Error: expected at least 1 additional argument", "Error: expected at least 1 additional argument",
@ -72,13 +71,13 @@ pub fn send(target: ChannelId, message: &str, ctx: &Context) {
} }
} }
pub fn respond_with_results<T: fmt::Display>(target: ChannelId, results: &Vec<T>, ctx: &Context) { pub fn respond_with_results<T: fmt::Display>(target: ChannelId, results: &[T], ctx: &Context) {
send( send(
target, target,
&format!( &format!(
"```{}```", "```{}```",
results results
.into_iter() .iter()
.take(5) .take(5)
.map(|p| format!("{}\n", p)) .map(|p| format!("{}\n", p))
.collect::<String>() .collect::<String>()
@ -88,7 +87,7 @@ pub fn respond_with_results<T: fmt::Display>(target: ChannelId, results: &Vec<T>
} }
pub fn search<T: DeserializeOwned>(url: &str, fallback: impl Fn(reqwest::Error) -> T) -> T { pub fn search<T: DeserializeOwned>(url: &str, fallback: impl Fn(reqwest::Error) -> T) -> T {
return search_inner(url).unwrap_or_else(fallback); search_inner(url).unwrap_or_else(fallback)
} }
fn search_inner<T: DeserializeOwned>(url: &str) -> Result<T, reqwest::Error> { fn search_inner<T: DeserializeOwned>(url: &str) -> Result<T, reqwest::Error> {

View File

@ -10,7 +10,7 @@ pub fn query_nix(ctx: Context, msg: Message, args: Vec<&str>) {
// we know for sure that there’s at least one element here // we know for sure that there’s at least one element here
let query = args[0]; let query = args[0];
match NIX_PACKAGES.packages.get(query) { match NIX_PACKAGES.packages.get(query) {
Some(result) => respond_with_results(msg.channel_id, &vec![result], &ctx), Some(result) => respond_with_results(msg.channel_id, &[result], &ctx),
None => send(msg.channel_id, "No results", &ctx), None => send(msg.channel_id, "No results", &ctx),
} }
} }

View File

@ -14,7 +14,7 @@ pub fn query_pacman(ctx: Context, msg: Message, args: Vec<&str>) {
|_e| EMPTY_RESULT, |_e| EMPTY_RESULT,
); );
// this is 1 for most packages and 2 if there’s a second version in testing // this is 1 for most packages and 2 if there’s a second version in testing
if response.results.len() != 0 { if response.results.is_empty() {
respond_with_results(msg.channel_id, &response.results, &ctx); respond_with_results(msg.channel_id, &response.results, &ctx);
return; return;
} }
@ -27,7 +27,7 @@ pub fn query_pacman(ctx: Context, msg: Message, args: Vec<&str>) {
), ),
|_e| EMPTY_RESULT, |_e| EMPTY_RESULT,
); );
if response.results.len() == 0 { if response.results.is_empty() {
send(msg.channel_id, "No results", &ctx); send(msg.channel_id, "No results", &ctx);
return; return;
} }