meridian command for switching from 12/24 format
This commit is contained in:
@ -239,7 +239,7 @@ async fn dashboard(ctx: &Context, msg: &Message, _args: String) {
|
||||
}
|
||||
|
||||
#[command]
|
||||
async fn clock(ctx: &Context, msg: &Message, args: String) {
|
||||
async fn clock(ctx: &Context, msg: &Message, _args: String) {
|
||||
let data = ctx.data.read().await;
|
||||
|
||||
let pool = data
|
||||
@ -251,26 +251,17 @@ async fn clock(ctx: &Context, msg: &Message, args: String) {
|
||||
|
||||
let language = UserData::language_of(&msg.author, &pool).await;
|
||||
let timezone = UserData::timezone_of(&msg.author, &pool).await;
|
||||
let meridian = UserData::meridian_of(&msg.author, &pool).await;
|
||||
|
||||
let now = Utc::now().with_timezone(&timezone);
|
||||
|
||||
let clock_display = lm.get(&language, "clock/time");
|
||||
|
||||
if args == "12" {
|
||||
let _ = msg
|
||||
.channel_id
|
||||
.say(
|
||||
&ctx,
|
||||
clock_display.replacen("{}", &now.format("%I:%M:%S %p").to_string(), 1),
|
||||
)
|
||||
.await;
|
||||
} else {
|
||||
let _ = msg
|
||||
.channel_id
|
||||
.say(
|
||||
&ctx,
|
||||
clock_display.replacen("{}", &now.format("%H:%M:%S").to_string(), 1),
|
||||
)
|
||||
.await;
|
||||
}
|
||||
let _ = msg
|
||||
.channel_id
|
||||
.say(
|
||||
&ctx,
|
||||
clock_display.replacen("{}", &now.format(meridian.fmt_str()).to_string(), 1),
|
||||
)
|
||||
.await;
|
||||
}
|
||||
|
@ -225,6 +225,68 @@ async fn timezone(ctx: &Context, msg: &Message, args: String) {
|
||||
}
|
||||
}
|
||||
|
||||
#[command]
|
||||
async fn change_meridian(ctx: &Context, msg: &Message, args: String) {
|
||||
let pool;
|
||||
let lm;
|
||||
|
||||
{
|
||||
let data = ctx.data.read().await;
|
||||
|
||||
pool = data
|
||||
.get::<SQLPool>()
|
||||
.cloned()
|
||||
.expect("Could not get SQLPool from data");
|
||||
|
||||
lm = data.get::<LanguageManager>().cloned().unwrap();
|
||||
}
|
||||
|
||||
let mut user_data = UserData::from_user(&msg.author, &ctx, &pool).await.unwrap();
|
||||
|
||||
if &args == "12" {
|
||||
user_data.meridian_time = true;
|
||||
|
||||
user_data.commit_changes(&pool).await;
|
||||
|
||||
let _ = msg
|
||||
.channel_id
|
||||
.send_message(&ctx, |m| {
|
||||
m.embed(|e| {
|
||||
e.title(lm.get(&user_data.language, "meridian/title"))
|
||||
.color(*THEME_COLOR)
|
||||
.description(lm.get(&user_data.language, "meridian/12"))
|
||||
})
|
||||
})
|
||||
.await;
|
||||
} else if &args == "24" {
|
||||
user_data.meridian_time = false;
|
||||
|
||||
user_data.commit_changes(&pool).await;
|
||||
|
||||
let _ = msg
|
||||
.channel_id
|
||||
.send_message(&ctx, |m| {
|
||||
m.embed(|e| {
|
||||
e.title(lm.get(&user_data.language, "meridian/title"))
|
||||
.color(*THEME_COLOR)
|
||||
.description(lm.get(&user_data.language, "meridian/24"))
|
||||
})
|
||||
})
|
||||
.await;
|
||||
} else {
|
||||
let _ = msg
|
||||
.channel_id
|
||||
.send_message(&ctx, |m| {
|
||||
m.embed(|e| {
|
||||
e.title("Meridian Help")
|
||||
.color(*THEME_COLOR)
|
||||
.description(lm.get(&user_data.language, "help/meridian"))
|
||||
})
|
||||
})
|
||||
.await;
|
||||
}
|
||||
}
|
||||
|
||||
#[command]
|
||||
async fn language(ctx: &Context, msg: &Message, args: String) {
|
||||
let pool;
|
||||
|
@ -59,11 +59,7 @@ fn shorthand_displacement(seconds: u64) -> String {
|
||||
|
||||
let time_repr = format!("{:02}:{:02}:{:02}", hours, minutes, seconds);
|
||||
|
||||
if days > 0 {
|
||||
format!("{} days, {}", days, time_repr)
|
||||
} else {
|
||||
time_repr
|
||||
}
|
||||
format!("{} days, {}", days, time_repr)
|
||||
}
|
||||
|
||||
fn longhand_displacement(seconds: u64) -> String {
|
||||
@ -129,6 +125,7 @@ async fn pause(ctx: &Context, msg: &Message, args: String) {
|
||||
|
||||
let language = UserData::language_of(&msg.author, &pool).await;
|
||||
let timezone = UserData::timezone_of(&msg.author, &pool).await;
|
||||
let meridian = UserData::meridian_of(&msg.author, &pool).await;
|
||||
|
||||
let mut channel = ChannelData::from_channel(msg.channel(&ctx).await.unwrap(), &pool)
|
||||
.await
|
||||
@ -168,7 +165,7 @@ async fn pause(ctx: &Context, msg: &Message, args: String) {
|
||||
"{}",
|
||||
&timezone
|
||||
.timestamp(timestamp, 0)
|
||||
.format("%Y-%m-%d %H:%M:%S")
|
||||
.format(meridian.fmt_str())
|
||||
.to_string(),
|
||||
);
|
||||
|
||||
@ -430,6 +427,7 @@ async fn look(ctx: &Context, msg: &Message, args: String) {
|
||||
|
||||
let language = UserData::language_of(&msg.author, &pool).await;
|
||||
let timezone = UserData::timezone_of(&msg.author, &pool).await;
|
||||
let meridian = UserData::meridian_of(&msg.author, &pool).await;
|
||||
|
||||
let flags = LookFlags::from_string(&args);
|
||||
|
||||
@ -524,7 +522,7 @@ LIMIT
|
||||
let time_display = match flags.time_display {
|
||||
TimeDisplayType::Absolute => timezone
|
||||
.timestamp(reminder.time as i64, 0)
|
||||
.format("%Y-%m-%d %H:%M:%S")
|
||||
.format(meridian.fmt_str())
|
||||
.to_string(),
|
||||
|
||||
TimeDisplayType::Relative => {
|
||||
@ -641,7 +639,7 @@ WHERE
|
||||
count + 1,
|
||||
reminder.display_content(),
|
||||
reminder.channel,
|
||||
time.format("%Y-%m-%d %H:%M:%S")
|
||||
time.format(user_data.meridian().fmt_str())
|
||||
)
|
||||
});
|
||||
|
||||
|
Reference in New Issue
Block a user