summaryrefslogtreecommitdiffstats
path: root/src/client_ext/mod.rs
diff options
context:
space:
mode:
Diffstat (limited to 'src/client_ext/mod.rs')
-rw-r--r--src/client_ext/mod.rs28
1 files changed, 23 insertions, 5 deletions
diff --git a/src/client_ext/mod.rs b/src/client_ext/mod.rs
index 0693d99..2d5b23c 100644
--- a/src/client_ext/mod.rs
+++ b/src/client_ext/mod.rs
@@ -1,11 +1,7 @@
use serde::Deserializer;
-use tdlib_rs::client::ClientLike;
use serde::Deserialize;
-use serde_derive::{Serialize, Deserialize};
-use serde_json::{json, Value as SerdeJsonValue};
use tdlib_rs::Client;
-use tdlib_rs::client::ResponseFuture;
#[allow(unused)]
pub fn deserialize_i64_0<'de, D: Deserializer<'de>>(deserializer: D) -> std::result::Result<i64, D::Error> {
@@ -21,6 +17,28 @@ pub fn deserialize_i64_1<'de, D: Deserializer<'de>>(deserializer: D) -> std::res
.map_err(serde::de::Error::custom)
}
-include!("generated.rs");
+//include!("generated.rs");
+pub mod generated;
+
+pub use generated::*;
+
+impl std::fmt::Display for UserStatus {
+ fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
+ match self {
+ UserStatus::UserStatusEmpty => write!(f, "seen never"),
+ UserStatus::UserStatusOnline(online) => write!(f, "online. expires: {}", fmt_date(online.expires)),
+ UserStatus::UserStatusOffline(offline) => write!(f, "online. expires: {}", fmt_date(offline.was_online)),
+ UserStatus::UserStatusRecently => write!(f, "seen recently"),
+ UserStatus::UserStatusLastWeek => write!(f, "seen last week"),
+ UserStatus::UserStatusLastMonth => write!(f, "seen last month"),
+ }
+ }
+}
+
+fn fmt_date(date: i32) -> String {
+ use chrono::TimeZone;
+ let dt: chrono::DateTime<chrono::Local> = chrono::Local.timestamp(date as i64, 0);
+ format!("{}", dt)
+}
impl ClientExt for Client {}