mirror of
https://github.com/2e3s/awatcher.git
synced 2025-06-07 12:05:49 +00:00
Simplify config without bucket names
This commit is contained in:
parent
53a5c1adce
commit
856a7afee6
2
Cargo.lock
generated
2
Cargo.lock
generated
@ -226,7 +226,6 @@ dependencies = [
|
|||||||
"chrono",
|
"chrono",
|
||||||
"clap",
|
"clap",
|
||||||
"fern",
|
"fern",
|
||||||
"gethostname 0.4.1",
|
|
||||||
"log",
|
"log",
|
||||||
"toml",
|
"toml",
|
||||||
"watchers",
|
"watchers",
|
||||||
@ -2060,6 +2059,7 @@ dependencies = [
|
|||||||
"aw-client-rust",
|
"aw-client-rust",
|
||||||
"chrono",
|
"chrono",
|
||||||
"dirs 5.0.0",
|
"dirs 5.0.0",
|
||||||
|
"gethostname 0.4.1",
|
||||||
"log",
|
"log",
|
||||||
"regex",
|
"regex",
|
||||||
"serde",
|
"serde",
|
||||||
|
@ -17,7 +17,6 @@ log = { version = "0.4.17", features = ["std"] }
|
|||||||
|
|
||||||
[dependencies]
|
[dependencies]
|
||||||
watchers = { path = "./watchers", default-features = false }
|
watchers = { path = "./watchers", default-features = false }
|
||||||
gethostname = "0.4.1"
|
|
||||||
chrono = "0.4.24"
|
chrono = "0.4.24"
|
||||||
toml = "0.7.3"
|
toml = "0.7.3"
|
||||||
clap = { version = "4.2.1", features = ["string"] }
|
clap = { version = "4.2.1", features = ["string"] }
|
||||||
|
@ -70,9 +70,6 @@ pub fn from_cli() -> anyhow::Result<Config> {
|
|||||||
|
|
||||||
let config = new_with_cli(&matches)?;
|
let config = new_with_cli(&matches)?;
|
||||||
|
|
||||||
let hostname = gethostname::gethostname().into_string().unwrap();
|
|
||||||
let idle_bucket_name = format!("aw-watcher-afk_{hostname}");
|
|
||||||
let active_window_bucket_name = format!("aw-watcher-window_{hostname}");
|
|
||||||
let verbosity = match matches.get_count("verbosity") {
|
let verbosity = match matches.get_count("verbosity") {
|
||||||
0 => LevelFilter::Error,
|
0 => LevelFilter::Error,
|
||||||
1 => LevelFilter::Warn,
|
1 => LevelFilter::Warn,
|
||||||
@ -88,8 +85,6 @@ pub fn from_cli() -> anyhow::Result<Config> {
|
|||||||
idle_timeout: config.client.get_idle_timeout(),
|
idle_timeout: config.client.get_idle_timeout(),
|
||||||
poll_time_idle: config.client.get_poll_time_idle(),
|
poll_time_idle: config.client.get_poll_time_idle(),
|
||||||
poll_time_window: config.client.get_poll_time_window(),
|
poll_time_window: config.client.get_poll_time_window(),
|
||||||
idle_bucket_name,
|
|
||||||
active_window_bucket_name,
|
|
||||||
filters: config.client.filters,
|
filters: config.client.filters,
|
||||||
no_server: *matches.get_one("no-server").unwrap(),
|
no_server: *matches.get_one("no-server").unwrap(),
|
||||||
},
|
},
|
||||||
|
@ -23,6 +23,7 @@ serde = { version = "1.0.160", features = ["derive"] }
|
|||||||
serde_default = "0.1.0"
|
serde_default = "0.1.0"
|
||||||
serde_json = "1.0.95"
|
serde_json = "1.0.95"
|
||||||
regex = "1.8.1"
|
regex = "1.8.1"
|
||||||
|
gethostname = "0.4.1"
|
||||||
log = { workspace = true }
|
log = { workspace = true }
|
||||||
anyhow = { workspace = true }
|
anyhow = { workspace = true }
|
||||||
|
|
||||||
|
@ -12,8 +12,6 @@ pub struct Config {
|
|||||||
pub idle_timeout: Duration,
|
pub idle_timeout: Duration,
|
||||||
pub poll_time_idle: Duration,
|
pub poll_time_idle: Duration,
|
||||||
pub poll_time_window: Duration,
|
pub poll_time_window: Duration,
|
||||||
pub idle_bucket_name: String,
|
|
||||||
pub active_window_bucket_name: String,
|
|
||||||
pub no_server: bool,
|
pub no_server: bool,
|
||||||
pub filters: Vec<Filter>,
|
pub filters: Vec<Filter>,
|
||||||
}
|
}
|
||||||
|
@ -7,18 +7,28 @@ use serde_json::{Map, Value};
|
|||||||
pub struct ReportClient {
|
pub struct ReportClient {
|
||||||
pub client: AwClient,
|
pub client: AwClient,
|
||||||
pub config: Config,
|
pub config: Config,
|
||||||
|
idle_bucket_name: String,
|
||||||
|
active_window_bucket_name: String,
|
||||||
}
|
}
|
||||||
|
|
||||||
impl ReportClient {
|
impl ReportClient {
|
||||||
pub fn new(config: Config) -> anyhow::Result<Self> {
|
pub fn new(config: Config) -> anyhow::Result<Self> {
|
||||||
let client = AwClient::new(&config.host, &config.port.to_string(), "awatcher");
|
let client = AwClient::new(&config.host, &config.port.to_string(), "awatcher");
|
||||||
|
|
||||||
|
let hostname = gethostname::gethostname().into_string().unwrap();
|
||||||
|
let idle_bucket_name = format!("aw-watcher-afk_{hostname}");
|
||||||
|
let active_window_bucket_name = format!("aw-watcher-window_{hostname}");
|
||||||
if !config.no_server {
|
if !config.no_server {
|
||||||
Self::create_bucket(&client, &config.idle_bucket_name, "afkstatus")?;
|
Self::create_bucket(&client, &idle_bucket_name, "afkstatus")?;
|
||||||
Self::create_bucket(&client, &config.active_window_bucket_name, "currentwindow")?;
|
Self::create_bucket(&client, &active_window_bucket_name, "currentwindow")?;
|
||||||
}
|
}
|
||||||
|
|
||||||
Ok(Self { client, config })
|
Ok(Self {
|
||||||
|
client,
|
||||||
|
config,
|
||||||
|
idle_bucket_name,
|
||||||
|
active_window_bucket_name,
|
||||||
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
pub fn ping(
|
pub fn ping(
|
||||||
@ -46,7 +56,7 @@ impl ReportClient {
|
|||||||
|
|
||||||
let pulsetime = (self.config.idle_timeout + self.config.poll_time_idle).as_secs_f64();
|
let pulsetime = (self.config.idle_timeout + self.config.poll_time_idle).as_secs_f64();
|
||||||
self.client
|
self.client
|
||||||
.heartbeat(&self.config.idle_bucket_name, &event, pulsetime)
|
.heartbeat(&self.idle_bucket_name, &event, pulsetime)
|
||||||
.with_context(|| "Failed to send heartbeat")
|
.with_context(|| "Failed to send heartbeat")
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -82,11 +92,7 @@ impl ReportClient {
|
|||||||
|
|
||||||
let interval_margin = self.config.poll_time_idle.as_secs_f64() + 1.0;
|
let interval_margin = self.config.poll_time_idle.as_secs_f64() + 1.0;
|
||||||
self.client
|
self.client
|
||||||
.heartbeat(
|
.heartbeat(&self.active_window_bucket_name, &event, interval_margin)
|
||||||
&self.config.active_window_bucket_name,
|
|
||||||
&event,
|
|
||||||
interval_margin,
|
|
||||||
)
|
|
||||||
.with_context(|| "Failed to send heartbeat for active window")
|
.with_context(|| "Failed to send heartbeat for active window")
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user