From d9b3731dd8b598bd5c214f3a751051e3a72f93d8 Mon Sep 17 00:00:00 2001 From: keyvan <keyvankhademi@gmail.com> Date: Tue, 16 Apr 2024 11:06:28 -0700 Subject: [PATCH 1/5] fix: fix weekday calculation bug --- src/agent/market_schedule.rs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/agent/market_schedule.rs b/src/agent/market_schedule.rs index e55c799..01705aa 100644 --- a/src/agent/market_schedule.rs +++ b/src/agent/market_schedule.rs @@ -96,7 +96,7 @@ impl MarketSchedule { let month = when_local.date_naive().month0() + 1; let day = when_local.date_naive().day0() + 1; let time = when_local.time(); - let weekday = when_local.weekday().number_from_monday().to_usize(); + let weekday0 = when_local.weekday().number_from_monday().to_usize() - 1; for holiday in &self.holidays { // Check if the day matches @@ -105,7 +105,7 @@ impl MarketSchedule { } } - self.weekly_schedule[weekday].can_publish_at(time) + self.weekly_schedule[weekday0].can_publish_at(time) } } From 8cec9dc3cf5247ce70b585902f5f63149b12b49f Mon Sep 17 00:00:00 2001 From: keyvan <keyvankhademi@gmail.com> Date: Tue, 16 Apr 2024 11:07:56 -0700 Subject: [PATCH 2/5] chore: increase pyth agent version --- Cargo.lock | 2 +- Cargo.toml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index cd1f188..16421fd 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -3270,7 +3270,7 @@ dependencies = [ [[package]] name = "pyth-agent" -version = "2.6.0" +version = "2.6.1" dependencies = [ "anyhow", "async-trait", diff --git a/Cargo.toml b/Cargo.toml index 8c28965..fc99bf4 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "pyth-agent" -version = "2.6.0" +version = "2.6.1" edition = "2021" [[bin]] From 042495a5eb4dd86140f973cd833bdfa52ea8bba5 Mon Sep 17 00:00:00 2001 From: keyvan <keyvankhademi@gmail.com> Date: Tue, 16 Apr 2024 11:12:23 -0700 Subject: [PATCH 3/5] feat: add test to check sunday --- src/agent/market_schedule.rs | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/agent/market_schedule.rs b/src/agent/market_schedule.rs index 01705aa..75285b3 100644 --- a/src/agent/market_schedule.rs +++ b/src/agent/market_schedule.rs @@ -462,6 +462,10 @@ mod tests { // Date 2400 range assert!(market_schedule .can_publish_at(&NaiveDateTime::parse_from_str("2023-12-31 23:59", format)?.and_utc())); + + // Sunday + assert!(market_schedule + .can_publish_at(&NaiveDateTime::parse_from_str("2024-04-14 12:00", format)?.and_utc())); Ok(()) } } From fd50b0d2606cc7b537752ffd3400c725b980d512 Mon Sep 17 00:00:00 2001 From: keyvan <keyvankhademi@gmail.com> Date: Tue, 16 Apr 2024 11:20:38 -0700 Subject: [PATCH 4/5] feat: silently ignore weekly_schedule out of bound error --- src/agent/market_schedule.rs | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/src/agent/market_schedule.rs b/src/agent/market_schedule.rs index 75285b3..b1be58d 100644 --- a/src/agent/market_schedule.rs +++ b/src/agent/market_schedule.rs @@ -105,7 +105,12 @@ impl MarketSchedule { } } - self.weekly_schedule[weekday0].can_publish_at(time) + let day_schedule = self.weekly_schedule.get(weekday0); + + match day_schedule { + Some(day_schedule) => day_schedule.can_publish_at(time), + None => false, + } } } From e837739e6727ab3cbf3bac6f1ce791ad893cffa7 Mon Sep 17 00:00:00 2001 From: keyvan <keyvankhademi@gmail.com> Date: Tue, 16 Apr 2024 11:22:23 -0700 Subject: [PATCH 5/5] feat: add test for monday --- src/agent/market_schedule.rs | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/src/agent/market_schedule.rs b/src/agent/market_schedule.rs index b1be58d..f786e1b 100644 --- a/src/agent/market_schedule.rs +++ b/src/agent/market_schedule.rs @@ -471,6 +471,11 @@ mod tests { // Sunday assert!(market_schedule .can_publish_at(&NaiveDateTime::parse_from_str("2024-04-14 12:00", format)?.and_utc())); + + // Monday + assert!(market_schedule + .can_publish_at(&NaiveDateTime::parse_from_str("2024-04-15 12:00", format)?.and_utc())); + Ok(()) } }