From 6482af923b67c5717017293de229a26a730b32da Mon Sep 17 00:00:00 2001 From: jude Date: Sat, 19 Aug 2023 10:32:49 +0100 Subject: [PATCH] Prefer selecting favorite sound over other sounds --- src/cmds/search.rs | 4 ++-- src/models/sound.rs | 24 ++++++++++++++++++++++-- 2 files changed, 24 insertions(+), 4 deletions(-) diff --git a/src/cmds/search.rs b/src/cmds/search.rs index 068dcd1..df2a8f9 100644 --- a/src/cmds/search.rs +++ b/src/cmds/search.rs @@ -88,8 +88,8 @@ pub async fn list_user_sounds(ctx: Context<'_>) -> Result<(), Error> { Ok(()) } -/// Show all sounds you have uploaded -#[poise::command(slash_command, rename = "user", guild_only = true)] +/// Show sounds you have favorited +#[poise::command(slash_command, rename = "favorite", guild_only = true)] pub async fn list_favorite_sounds(ctx: Context<'_>) -> Result<(), Error> { let pager = SoundPager { nonce: 0, diff --git a/src/models/sound.rs b/src/models/sound.rs index 6a371c7..1502bde 100644 --- a/src/models/sound.rs +++ b/src/models/sound.rs @@ -125,12 +125,22 @@ SELECT name, id, public, server_id, uploader_id uploader_id = ? OR server_id = ? ) - ORDER BY uploader_id = ? DESC, server_id = ? DESC, public = 1 DESC, rand() + ORDER BY + uploader_id = ? DESC, + EXISTS( + SELECT 1 + FROM favorite_sounds + WHERE sound_id = id AND user_id = ? + ), + server_id = ? DESC, + public = 1 DESC, + rand() ", name, user_id, guild_id, user_id, + user_id, guild_id ) .fetch_all(&db_pool) @@ -146,12 +156,22 @@ SELECT name, id, public, server_id, uploader_id uploader_id = ? OR server_id = ? ) - ORDER BY uploader_id = ? DESC, server_id = ? DESC, public = 1 DESC, rand() + ORDER BY + uploader_id = ? DESC, + EXISTS( + SELECT 1 + FROM favorite_sounds + WHERE sound_id = id AND user_id = ? + ), + server_id = ? DESC, + public = 1 DESC, + rand() ", name, user_id, guild_id, user_id, + user_id, guild_id ) .fetch_all(&db_pool)