aboutsummaryrefslogtreecommitdiff
path: root/src/utils/pub_ip.rs
blob: ada58beb35038d46fa54c8d3dcd932b854fe0c87 (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
25
26
27
28
29
use crate::config::CONFIG;
use crate::types::ThreadsData;

pub async fn get_pub_ip() -> ThreadsData {
    let url4 = "http://api.ipify.org".to_string();
    let url6 = "http://api64.ipify.org".to_string();
    let _err4 = String::from("Error4");
    let res4 = match minreq::get(url4).send() {
        Ok(resp) => match resp.as_str() {
            Ok(res_str) => res_str.trim().to_string(),
            Err(_) => _err4,
        },
        Err(_) => _err4,
    };
    let _err6 = String::from("Error6");
    let mut res6 = String::from("");
    if CONFIG.pub_ip.show6 {
        res6 = match minreq::get(url6).send() {
            Ok(resp) => match resp.as_str() {
                Ok(res_str) => format!("[{}]", res_str.trim().to_string()),
                Err(_) => _err6,
            },
            Err(_) => _err6,
        } 
    }

    let data = format!("  {}  {} {} {}", CONFIG.pub_ip.icon, res4, res6, CONFIG.seperator);
    ThreadsData::PubIp(data)
}