summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorGokul <appu.yess@gmail.com>2023-04-10 19:50:25 +0400
committerGitHub <noreply@github.com>2023-04-10 16:50:25 +0100
commite0c4ec5498c0645f8850e275cf247889ae1dd12e (patch)
tree9edecf2204fe263e86be8fce7ea7584bc504d083
parentbca1e64dd33f99bc7d017083be9fbc6276e33ed0 (diff)
Atuin stats with day, month, week and year filter (#858)
* atuin stats with day, month and year * fixed stats for week * review suggestions * rust formatted
-rw-r--r--src/command/client/stats.rs16
1 files changed, 16 insertions, 0 deletions
diff --git a/src/command/client/stats.rs b/src/command/client/stats.rs
index d730df47..5134f22f 100644
--- a/src/command/client/stats.rs
+++ b/src/command/client/stats.rs
@@ -82,6 +82,22 @@ impl Cmd {
};
let history = if words.as_str() == "all" {
db.list(FilterMode::Global, &context, None, false).await?
+ } else if words.trim() == "today" {
+ let start = Local::now().date().and_hms(0, 0, 0);
+ let end = start + Duration::days(1);
+ db.range(start.into(), end.into()).await?
+ } else if words.trim() == "month" {
+ let end = Local::now().date().and_hms(0, 0, 0);
+ let start = end - Duration::days(31);
+ db.range(start.into(), end.into()).await?
+ } else if words.trim() == "week" {
+ let end = Local::now().date().and_hms(0, 0, 0);
+ let start = end - Duration::days(7);
+ db.range(start.into(), end.into()).await?
+ } else if words.trim() == "year" {
+ let end = Local::now().date().and_hms(0, 0, 0);
+ let start = end - Duration::days(365);
+ db.range(start.into(), end.into()).await?
} else {
let start = parse_date_string(&words, Local::now(), settings.dialect.into())?;
let end = start + Duration::days(1);