aboutsummaryrefslogtreecommitdiff
path: root/src/utils/weather.rs
blob: 11e446f4e019d1e0974afee8ba42ba21c330a199 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
use crate::config::CONFIG;
use crate::types::ThreadsData;

// will make a GET request from wttr.in
pub fn get_weather() -> ThreadsData {
    let format = if CONFIG.weather.format.is_empty() {
        String::from("%l:+%t")
    } else {
        CONFIG.weather.format.clone()
    };

    let url = format!("http://wttr.in/{}?format=\"{}", CONFIG.weather.city, format);
    let err_string = String::from("Error");
    let res = match minreq::get(url).send() {
        Ok(resp) => match resp.as_str() {
            Ok(res_str) => res_str.trim_matches('"').to_string(),
            Err(_) => err_string,
        },
        Err(_) => err_string,
    };

    let data = format!("  {}  {}  {}", CONFIG.weather.icon, res, CONFIG.seperator);
    ThreadsData::Weather(data)
}