pacbot/src/commands/dnf.rs
2019-10-31 12:21:24 +01:00

38 lines
983 B
Rust

use crate::commands::*;
use serde::Deserialize;
use serenity::model::channel::Message;
use std::fmt;
pub fn query_dnf(ctx: Context, msg: Message, args: Vec<&str>) {
let query = args.join(" ");
let response: Response = search(
&format!("https://mdapi.fedoraproject.org/f31/pkg/{}", &query),
|_e| Default::default(),
);
if response.basename == "" {
send(msg.channel_id, "No results", &ctx);
return;
}
respond_with_results(msg.channel_id, &[response], &ctx);
}
#[derive(Deserialize, Default)]
struct Response {
basename: String,
arch: String,
description: String,
repo: String,
url: String,
version: String,
}
impl fmt::Display for Response {
fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
write!(
f,
"{}.{} : {}\n {} in {}\n Homepage: {}",
self.basename, self.arch, self.description, self.version, self.repo, self.url
)
}
}