parent
c4cd23f471
commit
f16724e986
187
Cargo.lock
generated
187
Cargo.lock
generated
@ -89,6 +89,12 @@ version = "1.0.1"
|
|||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "cdb031dd78e28731d87d56cc8ffef4a8f36ca26c38fe2de700543e627f8a464a"
|
checksum = "cdb031dd78e28731d87d56cc8ffef4a8f36ca26c38fe2de700543e627f8a464a"
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "base64"
|
||||||
|
version = "0.13.0"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
checksum = "904dfeac50f3cdaba28fc6f57fdcddb75f49ed61346676a78c4ffe55877802fd"
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "bitflags"
|
name = "bitflags"
|
||||||
version = "1.2.1"
|
version = "1.2.1"
|
||||||
@ -136,6 +142,12 @@ version = "0.1.4"
|
|||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "40e38929add23cdf8a366df9b0e088953150724bcbe5fc330b0d8eb3b328eec8"
|
checksum = "40e38929add23cdf8a366df9b0e088953150724bcbe5fc330b0d8eb3b328eec8"
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "bumpalo"
|
||||||
|
version = "3.6.0"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
checksum = "099e596ef14349721d9016f6b80dd3419ea1bf289ab9b44df8e4dfd3a005d5d9"
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "bytemuck"
|
name = "bytemuck"
|
||||||
version = "1.5.0"
|
version = "1.5.0"
|
||||||
@ -270,6 +282,21 @@ dependencies = [
|
|||||||
"cfg-if 1.0.0",
|
"cfg-if 1.0.0",
|
||||||
]
|
]
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "itoa"
|
||||||
|
version = "0.4.7"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
checksum = "dd25036021b0de88a0aff6b850051563c6516d0bf53f8638938edbb9de732736"
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "js-sys"
|
||||||
|
version = "0.3.47"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
checksum = "5cfb73131c35423a367daf8cbd24100af0d077668c8c2943f0e7dd775fef0f65"
|
||||||
|
dependencies = [
|
||||||
|
"wasm-bindgen",
|
||||||
|
]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "lazy_static"
|
name = "lazy_static"
|
||||||
version = "1.4.0"
|
version = "1.4.0"
|
||||||
@ -317,6 +344,14 @@ name = "minreq"
|
|||||||
version = "2.3.0"
|
version = "2.3.0"
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "85b112458b07e0864c7415847c423fe758c7189a28e72347e95d92c4bfd33f5d"
|
checksum = "85b112458b07e0864c7415847c423fe758c7189a28e72347e95d92c4bfd33f5d"
|
||||||
|
dependencies = [
|
||||||
|
"lazy_static",
|
||||||
|
"rustls",
|
||||||
|
"serde",
|
||||||
|
"serde_json",
|
||||||
|
"webpki",
|
||||||
|
"webpki-roots",
|
||||||
|
]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "mpd"
|
name = "mpd"
|
||||||
@ -444,9 +479,24 @@ version = "1.2.0"
|
|||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "4e1b7878800220a76a08f32c057829511440f65528b63b940f2f2bc145d7ac68"
|
checksum = "4e1b7878800220a76a08f32c057829511440f65528b63b940f2f2bc145d7ac68"
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "ring"
|
||||||
|
version = "0.16.20"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
checksum = "3053cf52e236a3ed746dfc745aa9cacf1b791d846bdaf412f60a8d7d6e17c8fc"
|
||||||
|
dependencies = [
|
||||||
|
"cc",
|
||||||
|
"libc",
|
||||||
|
"once_cell",
|
||||||
|
"spin",
|
||||||
|
"untrusted",
|
||||||
|
"web-sys",
|
||||||
|
"winapi",
|
||||||
|
]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "rsblocks"
|
name = "rsblocks"
|
||||||
version = "0.1.12"
|
version = "0.1.13"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"alsa",
|
"alsa",
|
||||||
"breadx",
|
"breadx",
|
||||||
@ -466,6 +516,35 @@ version = "0.3.24"
|
|||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "dcf128d1287d2ea9d80910b5f1120d0b8eede3fbf1abe91c40d39ea7d51e6fda"
|
checksum = "dcf128d1287d2ea9d80910b5f1120d0b8eede3fbf1abe91c40d39ea7d51e6fda"
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "rustls"
|
||||||
|
version = "0.19.0"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
checksum = "064fd21ff87c6e87ed4506e68beb42459caa4a0e2eb144932e6776768556980b"
|
||||||
|
dependencies = [
|
||||||
|
"base64",
|
||||||
|
"log",
|
||||||
|
"ring",
|
||||||
|
"sct",
|
||||||
|
"webpki",
|
||||||
|
]
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "ryu"
|
||||||
|
version = "1.0.5"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
checksum = "71d301d4193d031abdd79ff7e3dd721168a9572ef3fe51a1517aba235bd8f86e"
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "sct"
|
||||||
|
version = "0.6.0"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
checksum = "e3042af939fca8c3453b7af0f1c66e533a15a86169e39de2657310ade8f98d3c"
|
||||||
|
dependencies = [
|
||||||
|
"ring",
|
||||||
|
"untrusted",
|
||||||
|
]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "serde"
|
name = "serde"
|
||||||
version = "1.0.123"
|
version = "1.0.123"
|
||||||
@ -486,6 +565,17 @@ dependencies = [
|
|||||||
"syn",
|
"syn",
|
||||||
]
|
]
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "serde_json"
|
||||||
|
version = "1.0.62"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
checksum = "ea1c6153794552ea7cf7cf63b1231a25de00ec90db326ba6264440fa08e31486"
|
||||||
|
dependencies = [
|
||||||
|
"itoa",
|
||||||
|
"ryu",
|
||||||
|
"serde",
|
||||||
|
]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "serde_yaml"
|
name = "serde_yaml"
|
||||||
version = "0.8.15"
|
version = "0.8.15"
|
||||||
@ -498,6 +588,12 @@ dependencies = [
|
|||||||
"yaml-rust",
|
"yaml-rust",
|
||||||
]
|
]
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "spin"
|
||||||
|
version = "0.5.2"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
checksum = "6e63cff320ae2c57904679ba7cb63280a3dc4613885beafb148ee7bf9aa9042d"
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "syn"
|
name = "syn"
|
||||||
version = "1.0.60"
|
version = "1.0.60"
|
||||||
@ -541,6 +637,12 @@ version = "0.2.1"
|
|||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "f7fe0bb3479651439c9112f72b6c505038574c9fbb575ed1bf3b797fa39dd564"
|
checksum = "f7fe0bb3479651439c9112f72b6c505038574c9fbb575ed1bf3b797fa39dd564"
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "untrusted"
|
||||||
|
version = "0.7.1"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
checksum = "a156c684c91ea7d62626509bce3cb4e1d9ed5c4d978f7b4352658f96a4c26b4a"
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "vec-arena"
|
name = "vec-arena"
|
||||||
version = "1.0.0"
|
version = "1.0.0"
|
||||||
@ -565,6 +667,89 @@ version = "0.10.0+wasi-snapshot-preview1"
|
|||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "1a143597ca7c7793eff794def352d41792a93c481eb1042423ff7ff72ba2c31f"
|
checksum = "1a143597ca7c7793eff794def352d41792a93c481eb1042423ff7ff72ba2c31f"
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "wasm-bindgen"
|
||||||
|
version = "0.2.70"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
checksum = "55c0f7123de74f0dab9b7d00fd614e7b19349cd1e2f5252bbe9b1754b59433be"
|
||||||
|
dependencies = [
|
||||||
|
"cfg-if 1.0.0",
|
||||||
|
"wasm-bindgen-macro",
|
||||||
|
]
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "wasm-bindgen-backend"
|
||||||
|
version = "0.2.70"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
checksum = "7bc45447f0d4573f3d65720f636bbcc3dd6ce920ed704670118650bcd47764c7"
|
||||||
|
dependencies = [
|
||||||
|
"bumpalo",
|
||||||
|
"lazy_static",
|
||||||
|
"log",
|
||||||
|
"proc-macro2",
|
||||||
|
"quote",
|
||||||
|
"syn",
|
||||||
|
"wasm-bindgen-shared",
|
||||||
|
]
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "wasm-bindgen-macro"
|
||||||
|
version = "0.2.70"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
checksum = "3b8853882eef39593ad4174dd26fc9865a64e84026d223f63bb2c42affcbba2c"
|
||||||
|
dependencies = [
|
||||||
|
"quote",
|
||||||
|
"wasm-bindgen-macro-support",
|
||||||
|
]
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "wasm-bindgen-macro-support"
|
||||||
|
version = "0.2.70"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
checksum = "4133b5e7f2a531fa413b3a1695e925038a05a71cf67e87dafa295cb645a01385"
|
||||||
|
dependencies = [
|
||||||
|
"proc-macro2",
|
||||||
|
"quote",
|
||||||
|
"syn",
|
||||||
|
"wasm-bindgen-backend",
|
||||||
|
"wasm-bindgen-shared",
|
||||||
|
]
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "wasm-bindgen-shared"
|
||||||
|
version = "0.2.70"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
checksum = "dd4945e4943ae02d15c13962b38a5b1e81eadd4b71214eee75af64a4d6a4fd64"
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "web-sys"
|
||||||
|
version = "0.3.47"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
checksum = "c40dc691fc48003eba817c38da7113c15698142da971298003cac3ef175680b3"
|
||||||
|
dependencies = [
|
||||||
|
"js-sys",
|
||||||
|
"wasm-bindgen",
|
||||||
|
]
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "webpki"
|
||||||
|
version = "0.21.4"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
checksum = "b8e38c0608262c46d4a56202ebabdeb094cef7e560ca7a226c6bf055188aa4ea"
|
||||||
|
dependencies = [
|
||||||
|
"ring",
|
||||||
|
"untrusted",
|
||||||
|
]
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "webpki-roots"
|
||||||
|
version = "0.18.0"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
checksum = "91cd5736df7f12a964a5067a12c62fa38e1bd8080aff1f80bc29be7c80d19ab4"
|
||||||
|
dependencies = [
|
||||||
|
"webpki",
|
||||||
|
]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "wepoll-sys"
|
name = "wepoll-sys"
|
||||||
version = "3.0.1"
|
version = "3.0.1"
|
||||||
|
12
Cargo.toml
12
Cargo.toml
@ -1,6 +1,6 @@
|
|||||||
[package]
|
[package]
|
||||||
name = "rsblocks"
|
name = "rsblocks"
|
||||||
version = "0.1.12"
|
version = "0.1.13"
|
||||||
authors = ["mustafa salih <mustafasalih1991@gmail.com>"]
|
authors = ["mustafa salih <mustafasalih1991@gmail.com>"]
|
||||||
edition = "2018"
|
edition = "2018"
|
||||||
readme = "README.md"
|
readme = "README.md"
|
||||||
@ -11,15 +11,15 @@ description = "a multi threaded status bar for dwm window manager for linux"
|
|||||||
# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
|
# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
|
||||||
|
|
||||||
[dependencies]
|
[dependencies]
|
||||||
chrono = "0.4"
|
|
||||||
minreq = "2.2.1"
|
|
||||||
alsa = "0.4.3"
|
alsa = "0.4.3"
|
||||||
nix = "0.19.1"
|
chrono = "0.4"
|
||||||
mpd = "0.0.12"
|
|
||||||
dbus = "0.9.1"
|
dbus = "0.9.1"
|
||||||
|
lazy_static = "1.4.0"
|
||||||
|
minreq = {version = "2.2.1", features = ["https","json-using-serde"]}
|
||||||
|
mpd = "0.0.12"
|
||||||
|
nix = "0.19.1"
|
||||||
serde = {version = "1.0.120", features = ["derive"]}
|
serde = {version = "1.0.120", features = ["derive"]}
|
||||||
serde_yaml = "0.8.15"
|
serde_yaml = "0.8.15"
|
||||||
lazy_static = "1.4.0"
|
|
||||||
|
|
||||||
|
|
||||||
[dependencies.breadx]
|
[dependencies.breadx]
|
||||||
|
11
rsblocks.yml
11
rsblocks.yml
@ -55,7 +55,7 @@ battery:
|
|||||||
|
|
||||||
cpu_temperature:
|
cpu_temperature:
|
||||||
delay: 120.0
|
delay: 120.0
|
||||||
enabled: true
|
enabled: false
|
||||||
icon: ''
|
icon: ''
|
||||||
|
|
||||||
|
|
||||||
@ -65,6 +65,13 @@ loadavg:
|
|||||||
enabled: false
|
enabled: false
|
||||||
icon: ''
|
icon: ''
|
||||||
|
|
||||||
|
# bitcoin price
|
||||||
|
bitcoins:
|
||||||
|
delay: 7200.0 # 2 hours
|
||||||
|
enabled: false
|
||||||
|
icon: ''
|
||||||
|
symbol: 'BTC-USD'
|
||||||
|
|
||||||
|
|
||||||
mpd:
|
mpd:
|
||||||
delay: 5.0
|
delay: 5.0
|
||||||
@ -77,7 +84,7 @@ mpd:
|
|||||||
volume:
|
volume:
|
||||||
card: 'PULSE'
|
card: 'PULSE'
|
||||||
delay: 0.18
|
delay: 0.18
|
||||||
enabled: true
|
enabled: false
|
||||||
icon: ''
|
icon: ''
|
||||||
|
|
||||||
|
|
||||||
|
21
src/config/bitcoins.rs
Normal file
21
src/config/bitcoins.rs
Normal file
@ -0,0 +1,21 @@
|
|||||||
|
use serde::{Deserialize, Serialize};
|
||||||
|
use std::default::Default;
|
||||||
|
|
||||||
|
#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
|
||||||
|
pub struct BitCoins {
|
||||||
|
pub icon: String,
|
||||||
|
pub symbol: String,
|
||||||
|
pub enabled: bool,
|
||||||
|
pub delay: f64,
|
||||||
|
}
|
||||||
|
|
||||||
|
impl Default for BitCoins {
|
||||||
|
fn default() -> Self {
|
||||||
|
BitCoins {
|
||||||
|
icon: String::from(""),
|
||||||
|
symbol: String::from("BTC-USD"),
|
||||||
|
enabled: false,
|
||||||
|
delay: 120.0,
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
@ -1,4 +1,5 @@
|
|||||||
mod battery;
|
mod battery;
|
||||||
|
mod bitcoins;
|
||||||
mod cputemp;
|
mod cputemp;
|
||||||
mod disk;
|
mod disk;
|
||||||
mod loadavg;
|
mod loadavg;
|
||||||
@ -14,6 +15,7 @@ mod weather;
|
|||||||
|
|
||||||
use self::mpd::Mpd;
|
use self::mpd::Mpd;
|
||||||
use battery::Battery;
|
use battery::Battery;
|
||||||
|
use bitcoins::BitCoins;
|
||||||
use cputemp::CpuTemp;
|
use cputemp::CpuTemp;
|
||||||
use disk::Disk;
|
use disk::Disk;
|
||||||
use loadavg::LoadAvg;
|
use loadavg::LoadAvg;
|
||||||
@ -92,6 +94,9 @@ pub struct Config {
|
|||||||
|
|
||||||
#[serde(default)]
|
#[serde(default)]
|
||||||
pub pub_ip: PubIp,
|
pub pub_ip: PubIp,
|
||||||
|
|
||||||
|
#[serde(default)]
|
||||||
|
pub bitcoins: BitCoins,
|
||||||
}
|
}
|
||||||
|
|
||||||
impl Default for Config {
|
impl Default for Config {
|
||||||
@ -111,6 +116,7 @@ impl Default for Config {
|
|||||||
loadavg: Default::default(),
|
loadavg: Default::default(),
|
||||||
netspeed: Default::default(),
|
netspeed: Default::default(),
|
||||||
pub_ip: Default::default(),
|
pub_ip: Default::default(),
|
||||||
|
bitcoins: Default::default(),
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
24
src/run.rs
24
src/run.rs
@ -72,6 +72,11 @@ pub fn run(mut blocks: Blocks) {
|
|||||||
spawn_thread_loop(tx.clone(), uptime::get_uptime, CONFIG.uptime.delay);
|
spawn_thread_loop(tx.clone(), uptime::get_uptime, CONFIG.uptime.delay);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// BTC thread
|
||||||
|
if CONFIG.bitcoins.enabled {
|
||||||
|
spawn_thread_loop(tx.clone(), bitcoins::get_price, CONFIG.bitcoins.delay);
|
||||||
|
}
|
||||||
|
|
||||||
// net speed thread
|
// net speed thread
|
||||||
// get_netspeed will sleep inside the function
|
// get_netspeed will sleep inside the function
|
||||||
if CONFIG.netspeed.enabled {
|
if CONFIG.netspeed.enabled {
|
||||||
@ -91,7 +96,7 @@ pub fn run(mut blocks: Blocks) {
|
|||||||
{
|
{
|
||||||
// NOTE: order matters to the final format
|
// NOTE: order matters to the final format
|
||||||
|
|
||||||
let mut bar: Vec<String> = vec![String::from(""); 13];
|
let mut bar: Vec<String> = vec![String::from(""); 14];
|
||||||
//iterating the values recieved from the threads
|
//iterating the values recieved from the threads
|
||||||
for data in rx {
|
for data in rx {
|
||||||
match data {
|
match data {
|
||||||
@ -100,14 +105,15 @@ pub fn run(mut blocks: Blocks) {
|
|||||||
ThreadsData::Sound(x) => bar[2] = x,
|
ThreadsData::Sound(x) => bar[2] = x,
|
||||||
ThreadsData::Weather(x) => bar[3] = x,
|
ThreadsData::Weather(x) => bar[3] = x,
|
||||||
ThreadsData::NetSpeed(x) => bar[4] = x,
|
ThreadsData::NetSpeed(x) => bar[4] = x,
|
||||||
ThreadsData::PubIp(x) => bar[5] = x,
|
ThreadsData::BitCoins(x) => bar[5] = x,
|
||||||
ThreadsData::Disk(x) => bar[6] = x,
|
ThreadsData::PubIp(x) => bar[6] = x,
|
||||||
ThreadsData::Memory(x) => bar[7] = x,
|
ThreadsData::Disk(x) => bar[7] = x,
|
||||||
ThreadsData::CpuTemp(x) => bar[8] = x,
|
ThreadsData::Memory(x) => bar[8] = x,
|
||||||
ThreadsData::LoadAvg(x) => bar[9] = x,
|
ThreadsData::CpuTemp(x) => bar[9] = x,
|
||||||
ThreadsData::Battery(x) => bar[10] = x,
|
ThreadsData::LoadAvg(x) => bar[10] = x,
|
||||||
ThreadsData::Uptime(x) => bar[11] = x,
|
ThreadsData::Battery(x) => bar[11] = x,
|
||||||
ThreadsData::Time(x) => bar[12] = x,
|
ThreadsData::Uptime(x) => bar[12] = x,
|
||||||
|
ThreadsData::Time(x) => bar[13] = x,
|
||||||
}
|
}
|
||||||
|
|
||||||
// match ends here
|
// match ends here
|
||||||
|
10
src/types.rs
10
src/types.rs
@ -15,6 +15,7 @@ pub enum ThreadsData {
|
|||||||
LoadAvg(String),
|
LoadAvg(String),
|
||||||
NetSpeed(String),
|
NetSpeed(String),
|
||||||
PubIp(String),
|
PubIp(String),
|
||||||
|
BitCoins(String),
|
||||||
}
|
}
|
||||||
|
|
||||||
#[derive(Clone)]
|
#[derive(Clone)]
|
||||||
@ -32,6 +33,7 @@ pub struct Config {
|
|||||||
pub spotify: Spotify,
|
pub spotify: Spotify,
|
||||||
pub loadavg: LoadAvg,
|
pub loadavg: LoadAvg,
|
||||||
pub pub_ip: PubIp,
|
pub pub_ip: PubIp,
|
||||||
|
pub bitcoins: BitCoins,
|
||||||
}
|
}
|
||||||
|
|
||||||
#[derive(Clone)]
|
#[derive(Clone)]
|
||||||
@ -131,6 +133,14 @@ pub struct PubIp {
|
|||||||
pub delay: f64,
|
pub delay: f64,
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#[derive(Clone)]
|
||||||
|
pub struct BitCoins {
|
||||||
|
pub icon: String,
|
||||||
|
pub symbol: String,
|
||||||
|
pub enabled: bool,
|
||||||
|
pub delay: f64,
|
||||||
|
}
|
||||||
|
|
||||||
pub struct Blocks {
|
pub struct Blocks {
|
||||||
pub disp: Display<name::NameConnection>,
|
pub disp: Display<name::NameConnection>,
|
||||||
pub root: Window,
|
pub root: Window,
|
||||||
|
26
src/utils/bitcoins.rs
Normal file
26
src/utils/bitcoins.rs
Normal file
@ -0,0 +1,26 @@
|
|||||||
|
use crate::config::CONFIG;
|
||||||
|
use crate::types::ThreadsData;
|
||||||
|
use serde::Deserialize;
|
||||||
|
|
||||||
|
#[derive(Deserialize)]
|
||||||
|
struct Response {
|
||||||
|
price_24h: f64,
|
||||||
|
}
|
||||||
|
|
||||||
|
pub fn get_price() -> ThreadsData {
|
||||||
|
let url = format!(
|
||||||
|
"https://api.blockchain.com/v3/exchange/tickers/{}",
|
||||||
|
CONFIG.bitcoins.symbol
|
||||||
|
);
|
||||||
|
let _err = String::from("Error");
|
||||||
|
let res = match minreq::get(url).send() {
|
||||||
|
Ok(resp) => match resp.json::<Response>() {
|
||||||
|
Ok(data) => data.price_24h.to_string(),
|
||||||
|
_ => _err,
|
||||||
|
},
|
||||||
|
Err(_) => _err,
|
||||||
|
};
|
||||||
|
|
||||||
|
let data = format!(" {} {} {}", CONFIG.bitcoins.icon, res, CONFIG.seperator);
|
||||||
|
ThreadsData::BitCoins(data)
|
||||||
|
}
|
@ -1,4 +1,5 @@
|
|||||||
pub mod battery;
|
pub mod battery;
|
||||||
|
pub mod bitcoins;
|
||||||
pub mod cpu;
|
pub mod cpu;
|
||||||
pub mod disk;
|
pub mod disk;
|
||||||
pub mod load_average;
|
pub mod load_average;
|
||||||
|
@ -26,7 +26,7 @@ pub fn get_netspeed() -> ThreadsData {
|
|||||||
|
|
||||||
fn parse_speed_file(pth: &str) -> u64 {
|
fn parse_speed_file(pth: &str) -> u64 {
|
||||||
let base_path = format!("/sys/class/net/{}/statistics/", CONFIG.netspeed.interface);
|
let base_path = format!("/sys/class/net/{}/statistics/", CONFIG.netspeed.interface);
|
||||||
let x: u64 = read_to_string(base_path.to_owned() + pth)
|
let x: u64 = read_to_string(base_path + pth)
|
||||||
.unwrap()
|
.unwrap()
|
||||||
.trim()
|
.trim()
|
||||||
.parse::<u64>()
|
.parse::<u64>()
|
||||||
|
@ -2,7 +2,7 @@ use crate::config::CONFIG;
|
|||||||
use crate::types::ThreadsData;
|
use crate::types::ThreadsData;
|
||||||
|
|
||||||
pub fn get_pub_ip() -> ThreadsData {
|
pub fn get_pub_ip() -> ThreadsData {
|
||||||
let url = format!("http://api.ipify.org");
|
let url = "http://api.ipify.org".to_string();
|
||||||
let _err = String::from("Error");
|
let _err = String::from("Error");
|
||||||
let res = match minreq::get(url).send() {
|
let res = match minreq::get(url).send() {
|
||||||
Ok(resp) => match resp.as_str() {
|
Ok(resp) => match resp.as_str() {
|
||||||
|
Loading…
Reference in New Issue
Block a user