Fix reversed leaderboard
This commit is contained in:
Generated
+1
-1
@@ -1437,7 +1437,7 @@ checksum = "df94ce210e5bc13cb6651479fa48d14f601d9858cfe0467f43ae157023b938d3"
|
||||
|
||||
[[package]]
|
||||
name = "payphone"
|
||||
version = "4.0.28"
|
||||
version = "4.0.29"
|
||||
dependencies = [
|
||||
"async-trait",
|
||||
"axum",
|
||||
|
||||
+1
-1
@@ -1,6 +1,6 @@
|
||||
[package]
|
||||
name = "payphone"
|
||||
version = "4.0.28"
|
||||
version = "4.0.29"
|
||||
edition = "2024"
|
||||
default-run = "payphone"
|
||||
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
use async_trait::async_trait;
|
||||
use deadpool_redis::redis::AsyncTypedCommands;
|
||||
use deadpool_redis::redis::AsyncCommands;
|
||||
use itertools::Itertools;
|
||||
use twilight_util::builder::embed::{
|
||||
EmbedAuthorBuilder, EmbedBuilder, EmbedFooterBuilder, ImageSource,
|
||||
@@ -44,30 +44,26 @@ impl Command<State> for LeaderboardCommand {
|
||||
.await
|
||||
.map_err(CommandError::RedisPoolFailed)?;
|
||||
|
||||
let top = redis
|
||||
.zrange_withscores(KEY_LEADERBOARD_MONTHLY, 0, 9)
|
||||
let top: Vec<(u64, f64)> = redis
|
||||
.zrevrange_withscores(KEY_LEADERBOARD_MONTHLY, 0, 9)
|
||||
.await
|
||||
.map_err(CommandError::RedisFailed)?;
|
||||
|
||||
log::trace!("Top users for leaderboard: {top:?}");
|
||||
|
||||
let current_user_rank = redis
|
||||
.zrank(KEY_LEADERBOARD_MONTHLY, ctx.event.author.id.get())
|
||||
let current_user_rank: Option<usize> = redis
|
||||
.zrevrank(KEY_LEADERBOARD_MONTHLY, ctx.event.author.id.get())
|
||||
.await
|
||||
.map_err(CommandError::RedisFailed)?;
|
||||
|
||||
let mut users = Vec::new();
|
||||
|
||||
for (user_id, score) in top {
|
||||
let id: u64 = user_id
|
||||
.parse()
|
||||
.expect("User ID could not be parsed for leaderboard");
|
||||
|
||||
let Some(user) = User::get_by_id(id, &ctx.rt.state.db)
|
||||
let Some(user) = User::get_by_id(user_id, &ctx.rt.state.db)
|
||||
.await
|
||||
.map_err(|_| CommandError::DatabaseQueryFailed)?
|
||||
else {
|
||||
log::trace!("User ID {id} not found for leaderboard");
|
||||
log::trace!("User ID {user_id} not found for leaderboard");
|
||||
continue;
|
||||
};
|
||||
|
||||
|
||||
Reference in New Issue
Block a user