Print opening times in local time
This commit is contained in:
parent
27214dbc34
commit
4d06a1df84
3 changed files with 39 additions and 3 deletions
22
Cargo.lock
generated
22
Cargo.lock
generated
|
@ -1516,6 +1516,15 @@ dependencies = [
|
||||||
"libc",
|
"libc",
|
||||||
]
|
]
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "num_threads"
|
||||||
|
version = "0.1.6"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
checksum = "2819ce041d2ee131036f4fc9d6ae7ae125a3a40e97ba64d04fe799ad9dabbb44"
|
||||||
|
dependencies = [
|
||||||
|
"libc",
|
||||||
|
]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "object"
|
name = "object"
|
||||||
version = "0.29.0"
|
version = "0.29.0"
|
||||||
|
@ -2391,8 +2400,12 @@ version = "0.3.17"
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "a561bf4617eebd33bca6434b988f39ed798e527f51a1e797d0ee4f61c0a38376"
|
checksum = "a561bf4617eebd33bca6434b988f39ed798e527f51a1e797d0ee4f61c0a38376"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
|
"itoa",
|
||||||
|
"libc",
|
||||||
|
"num_threads",
|
||||||
"serde",
|
"serde",
|
||||||
"time-core",
|
"time-core",
|
||||||
|
"time-macros",
|
||||||
]
|
]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
|
@ -2401,6 +2414,15 @@ version = "0.1.0"
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
checksum = "2e153e1f1acaef8acc537e68b44906d2db6436e2b35ac2c6b42640fff91f00fd"
|
checksum = "2e153e1f1acaef8acc537e68b44906d2db6436e2b35ac2c6b42640fff91f00fd"
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "time-macros"
|
||||||
|
version = "0.2.6"
|
||||||
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
checksum = "d967f99f534ca7e495c575c62638eebc2898a8c84c119b89e250477bc4ba16b2"
|
||||||
|
dependencies = [
|
||||||
|
"time-core",
|
||||||
|
]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "tinyvec"
|
name = "tinyvec"
|
||||||
version = "1.6.0"
|
version = "1.6.0"
|
||||||
|
|
|
@ -18,7 +18,7 @@ reqwest = { version = "0.11.12", features = ["json"] }
|
||||||
serde = { version = "1.0.147", features = ["derive"] }
|
serde = { version = "1.0.147", features = ["derive"] }
|
||||||
spaceapi = "0.8.1"
|
spaceapi = "0.8.1"
|
||||||
thiserror = "1.0.37"
|
thiserror = "1.0.37"
|
||||||
time = "0.3.17"
|
time = { version = "0.3.17", features = ["local-offset", "formatting", "macros"] }
|
||||||
tokio = { version = "1.21.2", features = ["full"] }
|
tokio = { version = "1.21.2", features = ["full"] }
|
||||||
toml = "0.5.9"
|
toml = "0.5.9"
|
||||||
url = { version = "2.3.1", features = ["serde"] }
|
url = { version = "2.3.1", features = ["serde"] }
|
||||||
|
|
18
src/bot.rs
18
src/bot.rs
|
@ -25,7 +25,7 @@ use matrix_sdk::{
|
||||||
use never_say_never::Never;
|
use never_say_never::Never;
|
||||||
use reqwest::Url;
|
use reqwest::Url;
|
||||||
use serde::Deserialize;
|
use serde::Deserialize;
|
||||||
use time::OffsetDateTime;
|
use time::{ext::NumericalDuration, macros::format_description, OffsetDateTime, UtcOffset};
|
||||||
use tokio::time::sleep;
|
use tokio::time::sleep;
|
||||||
use tracing::{event, instrument, span, Level};
|
use tracing::{event, instrument, span, Level};
|
||||||
|
|
||||||
|
@ -228,7 +228,21 @@ impl Bot {
|
||||||
"isitopen" => {
|
"isitopen" => {
|
||||||
match self.update_open_state().await? {
|
match self.update_open_state().await? {
|
||||||
OpenState::Open { since } => {
|
OpenState::Open { since } => {
|
||||||
reply(&format!("positive! space has been open since {since}")).await?
|
if let Ok(offset) = UtcOffset::current_local_offset() {
|
||||||
|
let since = since.to_offset(offset);
|
||||||
|
|
||||||
|
let s = if OffsetDateTime::now_utc() - since > 20.hours() {
|
||||||
|
since.format(format_description!(
|
||||||
|
"[year]-[month]-[day] [hour]:[minute]:[second]"
|
||||||
|
))?
|
||||||
|
} else {
|
||||||
|
since.format(format_description!("[hour]:[minute]:[second]"))?
|
||||||
|
};
|
||||||
|
|
||||||
|
reply(&format!("positive! space has been open since {s}")).await?
|
||||||
|
} else {
|
||||||
|
reply(&format!("positive! space has been open since {since}")).await?
|
||||||
|
}
|
||||||
}
|
}
|
||||||
OpenState::Closed => reply("negative!").await?,
|
OpenState::Closed => reply("negative!").await?,
|
||||||
};
|
};
|
||||||
|
|
Loading…
Reference in a new issue