feat: test avec message pour dar
This commit is contained in:
parent
57ef7c0679
commit
1b2f0e25ac
@ -6,7 +6,7 @@ use crate::botv2::{
|
|||||||
init::{Context, Error},
|
init::{Context, Error},
|
||||||
};
|
};
|
||||||
use poise::{
|
use poise::{
|
||||||
serenity_prelude::{model::colour, CreateEmbed, CreateEmbedFooter},
|
serenity_prelude::{model::colour, CreateEmbed, CreateEmbedFooter, Mentionable, RoleId},
|
||||||
CreateReply,
|
CreateReply,
|
||||||
};
|
};
|
||||||
use tracing::instrument;
|
use tracing::instrument;
|
||||||
@ -57,7 +57,7 @@ pub async fn start(ctx: Context<'_>) -> Result<(), Error> {
|
|||||||
return Ok(());
|
return Ok(());
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
let (concour, success) = match start_concour(
|
let (concour, text, success) = match start_concour(
|
||||||
guild.get(),
|
guild.get(),
|
||||||
ctx.channel_id().get(),
|
ctx.channel_id().get(),
|
||||||
&mut cron_schedule,
|
&mut cron_schedule,
|
||||||
@ -71,12 +71,33 @@ pub async fn start(ctx: Context<'_>) -> Result<(), Error> {
|
|||||||
CreateEmbed::new()
|
CreateEmbed::new()
|
||||||
.title("No concour created")
|
.title("No concour created")
|
||||||
.color(colour::Color::RED),
|
.color(colour::Color::RED),
|
||||||
|
"".to_string(),
|
||||||
false,
|
false,
|
||||||
)
|
)
|
||||||
} else {
|
} else {
|
||||||
let concour = concour.unwrap();
|
let concour = concour.unwrap();
|
||||||
let keyword_index = concour.index_keyword as usize;
|
let keyword_index = concour.index_keyword as usize;
|
||||||
let keyword = concour.keywords.get(keyword_index).unwrap();
|
let keyword = concour.keywords.get(keyword_index).unwrap();
|
||||||
|
// TODO : condition pour returner ou non le texte ? ou transformer les annonce obligatoirement en texte ? ou permettre de choisir entre embed ou texte ?
|
||||||
|
let ping_concour = match concour.ping_concour {
|
||||||
|
Some(role) => RoleId::new(role).mention().to_string(),
|
||||||
|
None => "".to_string(),
|
||||||
|
};
|
||||||
|
let text = format!("
|
||||||
|
Bonsoir !
|
||||||
|
|
||||||
|
👹 ❱ Le thème de ce soir est : {}
|
||||||
|
|
||||||
|
📜 ❱ Les règles : Pas de loli, ni de shoota, ni de irl, ni de zoo.
|
||||||
|
|
||||||
|
Celui ou celle qui a le plus de votes gagne, comme récompense elle aura le rôle @ROLE pour une durée de 48h.
|
||||||
|
Le concours ce termine dans deux jours.
|
||||||
|
Ceux qui votent pour leur propre photo, cela ne sera pas pris en compte, une photo par personne.
|
||||||
|
|
||||||
|
À vos photos !
|
||||||
|
|
||||||
|
{}
|
||||||
|
", keyword.to_string(),ping_concour);
|
||||||
let output = CreateEmbed::new()
|
let output = CreateEmbed::new()
|
||||||
.title(format!(
|
.title(format!(
|
||||||
"Concour: {} Jour : {}",
|
"Concour: {} Jour : {}",
|
||||||
@ -92,7 +113,7 @@ pub async fn start(ctx: Context<'_>) -> Result<(), Error> {
|
|||||||
false,
|
false,
|
||||||
)
|
)
|
||||||
.color(colour::Color::DARK_GREEN);
|
.color(colour::Color::DARK_GREEN);
|
||||||
(output, true)
|
(output, text, true)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
Err(err) => (
|
Err(err) => (
|
||||||
@ -118,11 +139,16 @@ pub async fn start(ctx: Context<'_>) -> Result<(), Error> {
|
|||||||
.field("Your concour is possibly not initied correctly", "", false)
|
.field("Your concour is possibly not initied correctly", "", false)
|
||||||
.color(colour::Color::RED),
|
.color(colour::Color::RED),
|
||||||
},
|
},
|
||||||
|
"".to_string(),
|
||||||
false,
|
false,
|
||||||
),
|
),
|
||||||
};
|
};
|
||||||
let mut builder = CreateReply::default().ephemeral(!success);
|
let mut builder = CreateReply::default().ephemeral(!success);
|
||||||
builder = builder.embed(concour.footer(footer));
|
if !text.is_empty() {
|
||||||
|
builder = builder.content(text);
|
||||||
|
} else {
|
||||||
|
builder = builder.embed(concour.footer(footer));
|
||||||
|
}
|
||||||
match ctx.send(builder).await {
|
match ctx.send(builder).await {
|
||||||
Ok(handler) => {
|
Ok(handler) => {
|
||||||
if success {
|
if success {
|
||||||
|
@ -25,6 +25,7 @@ pub async fn update(
|
|||||||
#[description = "Description du concour"] description: Option<String>,
|
#[description = "Description du concour"] description: Option<String>,
|
||||||
#[description = "Banniére du concour"] banner: Option<String>,
|
#[description = "Banniére du concour"] banner: Option<String>,
|
||||||
#[description = "Role récompense"] role_recompense: Option<Role>,
|
#[description = "Role récompense"] role_recompense: Option<Role>,
|
||||||
|
#[description = "Role ping concour"] ping_concour: Option<Role>,
|
||||||
) -> Result<(), Error> {
|
) -> Result<(), Error> {
|
||||||
let guild = match ctx.guild_id() {
|
let guild = match ctx.guild_id() {
|
||||||
Some(guild) => guild,
|
Some(guild) => guild,
|
||||||
@ -66,12 +67,17 @@ pub async fn update(
|
|||||||
Some(role) => Some(role.id.get()),
|
Some(role) => Some(role.id.get()),
|
||||||
None => None,
|
None => None,
|
||||||
};
|
};
|
||||||
|
let ping_concour = match ping_concour {
|
||||||
|
Some(role) => Some(role.id.get()),
|
||||||
|
None => None,
|
||||||
|
};
|
||||||
let concour = match update_concour(
|
let concour = match update_concour(
|
||||||
guild.get(),
|
guild.get(),
|
||||||
ctx.channel_id().get(),
|
ctx.channel_id().get(),
|
||||||
title,
|
title,
|
||||||
description,
|
description,
|
||||||
role,
|
role,
|
||||||
|
ping_concour,
|
||||||
banner,
|
banner,
|
||||||
)
|
)
|
||||||
.await
|
.await
|
||||||
|
@ -17,6 +17,7 @@ pub async fn update_concour(
|
|||||||
title: Option<String>,
|
title: Option<String>,
|
||||||
description: Option<String>,
|
description: Option<String>,
|
||||||
role_recopense: Option<u64>,
|
role_recopense: Option<u64>,
|
||||||
|
role_ping_concour: Option<u64>,
|
||||||
banner: Option<String>,
|
banner: Option<String>,
|
||||||
) -> Result<Option<Concour>, UpdateConcourError> {
|
) -> Result<Option<Concour>, UpdateConcourError> {
|
||||||
let concour = match Concour::find_by_server_id_channel_id(&server_id, &channel_id).await {
|
let concour = match Concour::find_by_server_id_channel_id(&server_id, &channel_id).await {
|
||||||
@ -47,6 +48,9 @@ pub async fn update_concour(
|
|||||||
if let Some(banner) = banner {
|
if let Some(banner) = banner {
|
||||||
concour.banner = Some(banner);
|
concour.banner = Some(banner);
|
||||||
}
|
}
|
||||||
|
if let Some(role_ping_concour) = role_ping_concour {
|
||||||
|
concour.ping_concour = Some(role_ping_concour);
|
||||||
|
}
|
||||||
|
|
||||||
match concour.update().await {
|
match concour.update().await {
|
||||||
Ok(_) => {}
|
Ok(_) => {}
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
use super::check_if_server_enable::{check_if_server_enable, CheckIfServerEnableError};
|
use super::check_if_server_enable::{check_if_server_enable, CheckIfServerEnableError};
|
||||||
use crate::db::server_config::ServerConfig;
|
use crate::db::server_config::ServerConfig;
|
||||||
use poise::serenity_prelude::{self, CacheHttp, RoleId, UserId};
|
use poise::serenity_prelude::{self, RoleId, UserId};
|
||||||
use tracing::{info, instrument};
|
use tracing::{info, instrument};
|
||||||
|
|
||||||
#[instrument(level = "info", skip(http))]
|
#[instrument(level = "info", skip(http))]
|
||||||
|
@ -51,6 +51,7 @@ pub struct Concour {
|
|||||||
pub status: ConcourStatus,
|
pub status: ConcourStatus,
|
||||||
pub winner: Vec<ConcourWinner>,
|
pub winner: Vec<ConcourWinner>,
|
||||||
pub last_message_id: Option<u64>,
|
pub last_message_id: Option<u64>,
|
||||||
|
pub ping_concour: Option<u64>,
|
||||||
}
|
}
|
||||||
|
|
||||||
impl Default for Concour {
|
impl Default for Concour {
|
||||||
@ -69,6 +70,7 @@ impl Default for Concour {
|
|||||||
status: ConcourStatus::Created,
|
status: ConcourStatus::Created,
|
||||||
winner: Vec::new(),
|
winner: Vec::new(),
|
||||||
last_message_id: None,
|
last_message_id: None,
|
||||||
|
ping_concour: None,
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -89,6 +91,7 @@ impl Concour {
|
|||||||
status: ConcourStatus::Created,
|
status: ConcourStatus::Created,
|
||||||
winner: Vec::new(),
|
winner: Vec::new(),
|
||||||
last_message_id: None,
|
last_message_id: None,
|
||||||
|
ping_concour: None,
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
#[instrument(level = "info")]
|
#[instrument(level = "info")]
|
||||||
|
Loading…
Reference in New Issue
Block a user