fix alreadyhitleet check and add time command
All checks were successful
continuous-integration/drone/push Build is passing

This commit is contained in:
Andreas Larsen 2022-08-04 15:52:08 +02:00 committed by Andreas Larsen
parent 419335f78f
commit e766a8fa7f
Signed by: andreas
GPG Key ID: D97194E55873280A

View File

@ -1,7 +1,7 @@
mod lib; mod lib;
use crate::lib::{text_is_leet, time_is_leet}; use crate::lib::{text_is_leet, time_is_leet};
use chrono::NaiveDateTime; use chrono::{NaiveDateTime, NaiveTime, Local};
use sqlx::AnyPool; use sqlx::AnyPool;
use sqlx::any::AnyPoolOptions; use sqlx::any::AnyPoolOptions;
use teloxide::{prelude::*, RequestError, dispatching::UpdateFilterExt, utils::command::BotCommands}; use teloxide::{prelude::*, RequestError, dispatching::UpdateFilterExt, utils::command::BotCommands};
@ -61,7 +61,7 @@ async fn check_leet(username: &str, sent_time: NaiveDateTime, pool: &AnyPool) ->
if let Some(latest_leet) = latest_leet { if let Some(latest_leet) = latest_leet {
let distance = sent_time - latest_leet.2; let distance = sent_time - latest_leet.2;
if distance.num_hours() < 24 { if distance.num_hours() < 1 {
return Err(LeetError::AlreadyHitLeet); return Err(LeetError::AlreadyHitLeet);
} }
} }
@ -99,7 +99,9 @@ fn message_ok() -> Result<(), MessageHandlerError> {
#[command(rename = "lowercase", description = "score commands")] #[command(rename = "lowercase", description = "score commands")]
enum LeetCommand { enum LeetCommand {
#[command(description = "get scores")] #[command(description = "get scores")]
Scores Scores,
#[command(description = "get current time info")]
Time
} }
#[derive(Error,Debug)] #[derive(Error,Debug)]
@ -171,6 +173,23 @@ async fn leet_command_handler(message: Message, cmd: LeetCommand, bot: AutoSend<
let msg = format!("Leet scores:\n{}", scores_str); let msg = format!("Leet scores:\n{}", scores_str);
bot.send_message(message.chat.id, msg).await?;
},
LeetCommand::Time => {
let message_time = message.date.naive_utc();
let current_time = Local::now().time();
let leet_time = NaiveTime::from_hms(13,37,30);
let distance_to_leet = leet_time - current_time;
let msg = format!("My current time is: {}
message was sent at: {}
leet is at: {}, in {} seconds",
current_time,
message_time,
leet_time,
distance_to_leet.num_seconds()
);
bot.send_message(message.chat.id, msg).await?; bot.send_message(message.chat.id, msg).await?;
} }
} }