From feb0e771a11b71855d268fa1b4f141f28ed53db3 Mon Sep 17 00:00:00 2001 From: salmonik Date: Wed, 4 Nov 2026 01:08:31 +0100 Subject: cron: scope jobs to the guild that created them --- src/commands/cron.rs | 16 ++++++++++++---- 1 file changed, 12 insertions(+), 4 deletions(-) (limited to 'src/commands') diff --git a/src/commands/cron.rs b/src/commands/cron.rs index 47c3d62..ebaa96d 100644 --- a/src/commands/cron.rs +++ b/src/commands/cron.rs @@ -44,8 +44,10 @@ pub async fn dodaj_audio( ctx.data().copyparty.build_url_no_pw(&audio_filename) }; + let guild_id = ctx.guild_id().ok_or_else(lang::err_not_in_guild)?; database::add_cron_job( &ctx.data().db_pool, + guild_id.get() as i64, &cron_expression, "audio", channel_id, @@ -72,8 +74,10 @@ pub async fn dodaj_wiadomość( _ => return Err(lang::err_bad_channel_type()), }; + let guild_id = ctx.guild_id().ok_or_else(lang::err_not_in_guild)?; database::add_cron_job( &ctx.data().db_pool, + guild_id.get() as i64, &cron_expression, "wiadomość", channel_id, @@ -89,7 +93,8 @@ pub async fn dodaj_wiadomość( /// List all cron jobs #[poise::command(slash_command, guild_only, required_permissions = "MANAGE_GUILD")] pub async fn pokaż(ctx: Context<'_>) -> Result<()> { - let jobs = database::list_cron_jobs(&ctx.data().db_pool).await?; + let guild_id = ctx.guild_id().ok_or_else(lang::err_not_in_guild)?; + let jobs = database::list_cron_jobs(&ctx.data().db_pool, guild_id.get() as i64).await?; if jobs.is_empty() { ctx.say(lang::L_CRON_NONE).await?; return Ok(()); @@ -126,7 +131,8 @@ pub async fn usuń( ctx: Context<'_>, #[description = "ID pracy do usunięcia"] job_id: i64, ) -> Result<()> { - if database::delete_cron_job(&ctx.data().db_pool, job_id).await? { + let guild_id = ctx.guild_id().ok_or_else(lang::err_not_in_guild)?; + if database::delete_cron_job(&ctx.data().db_pool, job_id, guild_id.get() as i64).await? { ctx.say(lang::fmt_cron_deleted(job_id)).await?; } else { ctx.say(lang::fmt_cron_not_found(job_id)).await?; @@ -140,7 +146,8 @@ pub async fn pauza( ctx: Context<'_>, #[description = "ID pracy do zapauzowania"] job_id: i64, ) -> Result<()> { - if database::set_cron_job_active(&ctx.data().db_pool, job_id, false).await? { + let guild_id = ctx.guild_id().ok_or_else(lang::err_not_in_guild)?; + if database::set_cron_job_active(&ctx.data().db_pool, job_id, guild_id.get() as i64, false).await? { ctx.say(lang::fmt_cron_paused(job_id)).await?; } else { ctx.say(lang::fmt_cron_not_found(job_id)).await?; @@ -154,7 +161,8 @@ pub async fn wznów( ctx: Context<'_>, #[description = "ID pracy cron do wznowienia"] job_id: i64, ) -> Result<()> { - if database::set_cron_job_active(&ctx.data().db_pool, job_id, true).await? { + let guild_id = ctx.guild_id().ok_or_else(lang::err_not_in_guild)?; + if database::set_cron_job_active(&ctx.data().db_pool, job_id, guild_id.get() as i64, true).await? { ctx.say(lang::fmt_cron_resumed(job_id)).await?; } else { ctx.say(lang::fmt_cron_not_found(job_id)).await?; -- cgit v1.2.3