(stats cmd): Fixed rank display.
Added `member_ranks` data view for getting time and coin ranks from db.
This commit is contained in:
@@ -79,3 +79,5 @@ lions = RowTable(
|
|||||||
cache=TTLCache(5000, ttl=60*5),
|
cache=TTLCache(5000, ttl=60*5),
|
||||||
attach_as='lions'
|
attach_as='lions'
|
||||||
)
|
)
|
||||||
|
|
||||||
|
lion_ranks = Table('member_ranks', attach_as='lion_ranks')
|
||||||
|
|||||||
@@ -31,13 +31,9 @@ async def cmd_stats(ctx):
|
|||||||
|
|
||||||
# Collect the required target data
|
# Collect the required target data
|
||||||
lion = Lion.fetch(ctx.guild.id, target.id)
|
lion = Lion.fetch(ctx.guild.id, target.id)
|
||||||
rank_data = tables.lions.select_one_where(
|
rank_data = tables.lion_ranks.select_one_where(
|
||||||
userid=target.id,
|
userid=target.id,
|
||||||
guildid=ctx.guild.id,
|
guildid=ctx.guild.id
|
||||||
select_columns=(
|
|
||||||
"row_number() OVER (PARTITION BY guildid ORDER BY tracked_time DESC, userid ASC) AS time_rank",
|
|
||||||
"row_number() OVER (PARTITION BY guildid ORDER BY coins DESC, userid ASC) AS coin_rank",
|
|
||||||
)
|
|
||||||
)
|
)
|
||||||
|
|
||||||
# Extract and format data
|
# Extract and format data
|
||||||
|
|||||||
@@ -207,6 +207,13 @@ CREATE TRIGGER update_members_timstamp BEFORE UPDATE
|
|||||||
ON members FOR EACH ROW EXECUTE PROCEDURE
|
ON members FOR EACH ROW EXECUTE PROCEDURE
|
||||||
update_timestamp_column();
|
update_timestamp_column();
|
||||||
|
|
||||||
|
CREATE VIEW member_ranks AS
|
||||||
|
SELECT
|
||||||
|
*,
|
||||||
|
row_number() OVER (PARTITION BY guildid ORDER BY tracked_time DESC, userid ASC) AS time_rank,
|
||||||
|
row_number() OVER (PARTITION BY guildid ORDER BY coins DESC, userid ASC) AS coin_rank
|
||||||
|
FROM members;
|
||||||
|
|
||||||
|
|
||||||
CREATE VIEW current_study_badges AS
|
CREATE VIEW current_study_badges AS
|
||||||
SELECT
|
SELECT
|
||||||
|
|||||||
Reference in New Issue
Block a user