accept reference to pool rather than pool itself. response method on user_data to get text lines in locale. removed say_named trait

This commit is contained in:
jude
2020-09-01 17:07:51 +01:00
parent 74617d50a5
commit 9e737dc9d6
7 changed files with 106 additions and 100 deletions

View File

@ -24,10 +24,16 @@ use crate::{
#[command]
#[can_blacklist(false)]
async fn help(ctx: &Context, msg: &Message, _args: String) -> CommandResult {
let pool = ctx.data.read().await
.get::<SQLPool>().cloned().expect("Could not get SQLPool from data");
let user_data = UserData::from_id(&msg.author, &ctx, &pool).await.unwrap();
let desc = user_data.response(&pool, "help").await;
msg.channel_id.send_message(ctx, |m| m
.embed(|e| e
.embed(move |e| e
.title("Help")
.description("Help Description")
.description(desc)
.color(THEME_COLOR)
)
).await?;
@ -37,10 +43,16 @@ async fn help(ctx: &Context, msg: &Message, _args: String) -> CommandResult {
#[command]
async fn info(ctx: &Context, msg: &Message, _args: String) -> CommandResult {
let pool = ctx.data.read().await
.get::<SQLPool>().cloned().expect("Could not get SQLPool from data");
let user_data = UserData::from_id(&msg.author, &ctx, &pool).await.unwrap();
let desc = user_data.response(&pool, "info").await;
msg.channel_id.send_message(ctx, |m| m
.embed(|e| e
.embed(move |e| e
.title("Info")
.description("Info Description")
.description(desc)
.color(THEME_COLOR)
)
).await?;
@ -50,10 +62,29 @@ async fn info(ctx: &Context, msg: &Message, _args: String) -> CommandResult {
#[command]
async fn donate(ctx: &Context, msg: &Message, _args: String) -> CommandResult {
let pool = ctx.data.read().await
.get::<SQLPool>().cloned().expect("Could not get SQLPool from data");
let user_data = UserData::from_id(&msg.author, &ctx, &pool).await.unwrap();
let desc = user_data.response(&pool, "donate").await;
msg.channel_id.send_message(ctx, |m| m
.embed(|e| e
.embed(move |e| e
.title("Donate")
.description("Donate Description")
.description(desc)
.color(THEME_COLOR)
)
).await?;
Ok(())
}
#[command]
async fn dashboard(ctx: &Context, msg: &Message, _args: String) -> CommandResult {
msg.channel_id.send_message(ctx, |m| m
.embed(move |e| e
.title("Dashboard")
.description("https://reminder-bot.com/dashboard")
.color(THEME_COLOR)
)
).await?;
@ -66,17 +97,17 @@ async fn clock(ctx: &Context, msg: &Message, args: String) -> CommandResult {
let pool = ctx.data.read().await
.get::<SQLPool>().cloned().expect("Could not get SQLPool from data");
let user_data = UserData::from_id(&msg.author, &ctx, pool).await.unwrap();
let user_data = UserData::from_id(&msg.author, &ctx, &pool).await.unwrap();
let tz: Tz = user_data.timezone.parse().unwrap();
let now = Utc::now().with_timezone(&tz);
if args == "12".to_string() {
let _ = msg.channel_id.say(&ctx, format!("Current time: **{}**", now.format("%I:%M:%S %p"))).await;
let _ = msg.channel_id.say(&ctx, user_data.response(&pool, "clock/time").await.replacen("{}", &now.format("%I:%M:%S %p").to_string(), 1)).await;
}
else {
let _ = msg.channel_id.say(&ctx, format!("Current time: **{}**", now.format("%H:%M:%S"))).await;
let _ = msg.channel_id.say(&ctx, user_data.response(&pool, "clock/time").await.replacen("{}", &now.format("%H:%M:%S").to_string(), 1)).await;
}
Ok(())

View File

@ -21,8 +21,6 @@ use crate::{
GuildData,
},
SQLPool,
framework::SendFromDb,
time_parser::TimeParser,
};
lazy_static! {
@ -41,14 +39,14 @@ async fn blacklist(ctx: &Context, msg: &Message, args: String) -> CommandResult
let mut channel = match capture_opt {
Some(capture) =>
ChannelData::from_id(capture.as_str().parse::<u64>().unwrap(), pool.clone()).await.unwrap(),
ChannelData::from_id(capture.as_str().parse::<u64>().unwrap(), &pool).await.unwrap(),
None =>
ChannelData::from_channel(msg.channel(&ctx).await.unwrap(), pool.clone()).await.unwrap(),
ChannelData::from_channel(msg.channel(&ctx).await.unwrap(), &pool).await.unwrap(),
};
channel.blacklisted = !channel.blacklisted;
channel.commit_changes(pool).await;
channel.commit_changes(&pool).await;
if channel.blacklisted {
let _ = msg.channel_id.say(&ctx, "Blacklisted").await;
@ -65,25 +63,25 @@ async fn timezone(ctx: &Context, msg: &Message, args: String) -> CommandResult {
let pool = ctx.data.read().await
.get::<SQLPool>().cloned().expect("Could not get SQLPool from data");
let mut user_data = UserData::from_id(&msg.author, &ctx, pool.clone()).await.unwrap();
let mut user_data = UserData::from_id(&msg.author, &ctx, &pool).await.unwrap();
if args.len() > 0 {
match args.parse::<Tz>() {
Ok(_) => {
user_data.timezone = args;
user_data.commit_changes(pool).await;
user_data.commit_changes(&pool).await;
let _ = msg.channel_id.say_named(&ctx, user_data.language, "timezone/set_p").await;
let _ = msg.channel_id.say(&ctx, user_data.response(&pool, "timezone/set_p").await).await;
}
Err(_) => {
let _ = msg.channel_id.say_named(&ctx, user_data.language, "timezone/no_timezone").await;
let _ = msg.channel_id.say(&ctx, user_data.response(&pool, "timezone/no_timezone").await).await;
}
}
}
else {
let _ = msg.channel_id.say_named(&ctx, user_data.language, "timezone/no_argument").await;
let _ = msg.channel_id.say(&ctx, user_data.response(&pool, "timezone/no_argument").await).await;
}
Ok(())
@ -94,7 +92,7 @@ async fn language(ctx: &Context, msg: &Message, args: String) -> CommandResult {
let pool = ctx.data.read().await
.get::<SQLPool>().cloned().expect("Could not get SQLPool from data");
let mut user_data = UserData::from_id(&msg.author, &ctx, pool.clone()).await.unwrap();
let mut user_data = UserData::from_id(&msg.author, &ctx, &pool).await.unwrap();
match sqlx::query!(
"
@ -106,13 +104,13 @@ SELECT code FROM languages WHERE code = ? OR name = ?
Ok(row) => {
user_data.language = row.code;
user_data.commit_changes(pool).await;
user_data.commit_changes(&pool).await;
let _ = msg.channel_id.say_named(&ctx, user_data.language, "lang/set_p").await;
let _ = msg.channel_id.say(&ctx, user_data.response(&pool, "lang/set_p").await).await;
},
Err(_) => {
let _ = msg.channel_id.say_named(&ctx, user_data.language, "lang/invalid").await;
let _ = msg.channel_id.say(&ctx, user_data.response(&pool, "lang/invalid").await).await;
},
}
@ -124,22 +122,20 @@ async fn prefix(ctx: &Context, msg: &Message, args: String) -> CommandResult {
let pool = ctx.data.read().await
.get::<SQLPool>().cloned().expect("Could not get SQLPool from data");
let mut guild_data = GuildData::from_guild(msg.guild(&ctx).await.unwrap(), pool.clone()).await.unwrap();
let user_data = UserData::from_id(&msg.author, &ctx, pool.clone()).await.unwrap();
let mut guild_data = GuildData::from_guild(msg.guild(&ctx).await.unwrap(), &pool).await.unwrap();
let user_data = UserData::from_id(&msg.author, &ctx, &pool).await.unwrap();
if args.len() > 5 {
let _ = msg.channel_id.say_named(&ctx, user_data.language, "prefix/too_long").await;
let _ = msg.channel_id.say(&ctx, user_data.response(&pool, "prefix/too_long").await).await;
}
else if args.len() == 0 {
let _ = msg.channel_id.say_named(&ctx, user_data.language, "prefix/no_argument").await;
let _ = msg.channel_id.say(&ctx, user_data.response(&pool, "prefix/no_argument").await).await;
}
else {
guild_data.prefix = args;
guild_data.commit_changes(&pool).await;
guild_data.commit_changes(pool).await;
let _ = msg.channel_id.say_named(&ctx, user_data.language, "prefix/success").await;
let _ = msg.channel_id.say(&ctx, user_data.response(&pool, "prefix/success").await).await;
}
Ok(())

View File

@ -10,18 +10,12 @@ use serenity::{
framework::standard::CommandResult,
};
use chrono_tz::{
Tz,
Etc::UTC,
};
use crate::{
models::{
ChannelData,
UserData,
},
SQLPool,
framework::SendFromDb,
time_parser::TimeParser,
};
@ -33,20 +27,20 @@ async fn pause(ctx: &Context, msg: &Message, args: String) -> CommandResult {
let pool = ctx.data.read().await
.get::<SQLPool>().cloned().expect("Could not get SQLPool from data");
let user_data = UserData::from_id(&msg.author, &ctx, pool.clone()).await.unwrap();
let mut channel = ChannelData::from_channel(msg.channel(&ctx).await.unwrap(), pool.clone()).await.unwrap();
let user_data = UserData::from_id(&msg.author, &ctx, &pool).await.unwrap();
let mut channel = ChannelData::from_channel(msg.channel(&ctx).await.unwrap(), &pool).await.unwrap();
if args.len() == 0 {
channel.paused = !channel.paused;
channel.paused_until = None;
channel.commit_changes(pool).await;
channel.commit_changes(&pool).await;
if channel.paused {
let _ = msg.channel_id.say_named(&ctx, user_data.language, "paused/paused_indefinite").await;
let _ = msg.channel_id.say(&ctx, user_data.response(&pool, "paused/paused_indefinite").await).await;
}
else {
let _ = msg.channel_id.say_named(&ctx, user_data.language, "paused/unpaused").await;
let _ = msg.channel_id.say(&ctx, user_data.response(&pool, "paused/unpaused").await).await;
}
}
else {
@ -58,13 +52,13 @@ async fn pause(ctx: &Context, msg: &Message, args: String) -> CommandResult {
channel.paused = true;
channel.paused_until = Some(NaiveDateTime::from_timestamp(timestamp, 0));
channel.commit_changes(pool).await;
channel.commit_changes(&pool).await;
let _ = msg.channel_id.say_named(&ctx, user_data.language, "paused/paused_until").await;
let _ = msg.channel_id.say(&ctx, user_data.response(&pool, "paused/paused_until").await).await;
},
Err(_) => {
let _ = msg.channel_id.say_named(&ctx, user_data.language, "paused/invalid_time").await;
let _ = msg.channel_id.say(&ctx, user_data.response(&pool, "paused/invalid_time").await).await;
},
}
}