fix: temporarily disable last message query in member_list
This commit is contained in:
parent
b1f4253efb
commit
9c95ca2ed9
@ -60,7 +60,8 @@ namespace PluralKit.Bot
|
|||||||
if (ctx.MatchFlag("with-last-switch", "with-last-fronted", "with-last-front", "wls", "wlf"))
|
if (ctx.MatchFlag("with-last-switch", "with-last-fronted", "with-last-front", "wls", "wlf"))
|
||||||
p.IncludeLastSwitch = true;
|
p.IncludeLastSwitch = true;
|
||||||
if (ctx.MatchFlag("with-last-message", "with-last-proxy", "wlm", "wlp"))
|
if (ctx.MatchFlag("with-last-message", "with-last-proxy", "wlm", "wlp"))
|
||||||
p.IncludeLastMessage = true;
|
throw new PKError("Sorting by last message is temporarily disabled due to database issues, sorry.");
|
||||||
|
// p.IncludeLastMessage = true;
|
||||||
if (ctx.MatchFlag("with-message-count", "wmc"))
|
if (ctx.MatchFlag("with-message-count", "wmc"))
|
||||||
p.IncludeMessageCount = true;
|
p.IncludeMessageCount = true;
|
||||||
if (ctx.MatchFlag("with-created", "wc"))
|
if (ctx.MatchFlag("with-created", "wc"))
|
||||||
@ -141,12 +142,12 @@ namespace PluralKit.Bot
|
|||||||
ret += $"(last switched in: <t:{lastSw.Value.ToUnixTimeSeconds()}>)";
|
ret += $"(last switched in: <t:{lastSw.Value.ToUnixTimeSeconds()}>)";
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
case SortProperty.LastMessage:
|
// case SortProperty.LastMessage:
|
||||||
{
|
// {
|
||||||
if (m.MetadataPrivacy.TryGet(lookupCtx, m.LastMessage, out var lastMsg))
|
// if (m.MetadataPrivacy.TryGet(lookupCtx, m.LastMessage, out var lastMsg))
|
||||||
ret += $"(last message: <t:{DiscordUtils.SnowflakeToInstant(lastMsg.Value).ToUnixTimeSeconds()}>)";
|
// ret += $"(last message: <t:{DiscordUtils.SnowflakeToInstant(lastMsg.Value).ToUnixTimeSeconds()}>)";
|
||||||
break;
|
// break;
|
||||||
}
|
// }
|
||||||
case SortProperty.CreationDate:
|
case SortProperty.CreationDate:
|
||||||
{
|
{
|
||||||
if (m.MetadataPrivacy.TryGet(lookupCtx, m.Created, out var created))
|
if (m.MetadataPrivacy.TryGet(lookupCtx, m.Created, out var created))
|
||||||
@ -159,8 +160,8 @@ namespace PluralKit.Bot
|
|||||||
ret += $"({count} messages)";
|
ret += $"({count} messages)";
|
||||||
else if (opts.IncludeLastSwitch && m.MetadataPrivacy.TryGet(lookupCtx, m.LastSwitchTime, out var lastSw))
|
else if (opts.IncludeLastSwitch && m.MetadataPrivacy.TryGet(lookupCtx, m.LastSwitchTime, out var lastSw))
|
||||||
ret += $"(last switched in: <t:{lastSw.Value.ToUnixTimeSeconds()}>)";
|
ret += $"(last switched in: <t:{lastSw.Value.ToUnixTimeSeconds()}>)";
|
||||||
else if (opts.IncludeLastMessage && m.MetadataPrivacy.TryGet(lookupCtx, m.LastMessage, out var lastMsg))
|
// else if (opts.IncludeLastMessage && m.MetadataPrivacy.TryGet(lookupCtx, m.LastMessage, out var lastMsg))
|
||||||
ret += $"(last message: <t:{DiscordUtils.SnowflakeToInstant(lastMsg.Value).ToUnixTimeSeconds()}>)";
|
// ret += $"(last message: <t:{DiscordUtils.SnowflakeToInstant(lastMsg.Value).ToUnixTimeSeconds()}>)";
|
||||||
else if (opts.IncludeCreated && m.MetadataPrivacy.TryGet(lookupCtx, m.Created, out var created))
|
else if (opts.IncludeCreated && m.MetadataPrivacy.TryGet(lookupCtx, m.Created, out var created))
|
||||||
ret += $"(created at <t:{created.ToUnixTimeSeconds()}>)";
|
ret += $"(created at <t:{created.ToUnixTimeSeconds()}>)";
|
||||||
else if (opts.IncludeAvatar && m.AvatarFor(lookupCtx) is { } avatarUrl)
|
else if (opts.IncludeAvatar && m.AvatarFor(lookupCtx) is { } avatarUrl)
|
||||||
@ -203,8 +204,8 @@ namespace PluralKit.Bot
|
|||||||
if ((opts.IncludeMessageCount || opts.SortProperty == SortProperty.MessageCount) && m.MessageCountFor(lookupCtx) is { } count && count > 0)
|
if ((opts.IncludeMessageCount || opts.SortProperty == SortProperty.MessageCount) && m.MessageCountFor(lookupCtx) is { } count && count > 0)
|
||||||
profile.Append($"\n**Message count:** {count}");
|
profile.Append($"\n**Message count:** {count}");
|
||||||
|
|
||||||
if ((opts.IncludeLastMessage || opts.SortProperty == SortProperty.LastMessage) && m.MetadataPrivacy.TryGet(lookupCtx, m.LastMessage, out var lastMsg))
|
// if ((opts.IncludeLastMessage || opts.SortProperty == SortProperty.LastMessage) && m.MetadataPrivacy.TryGet(lookupCtx, m.LastMessage, out var lastMsg))
|
||||||
profile.Append($"\n**Last message:** {DiscordUtils.SnowflakeToInstant(lastMsg.Value).FormatZoned(zone)}");
|
// profile.Append($"\n**Last message:** {DiscordUtils.SnowflakeToInstant(lastMsg.Value).FormatZoned(zone)}");
|
||||||
|
|
||||||
if ((opts.IncludeLastSwitch || opts.SortProperty == SortProperty.LastSwitch) && m.MetadataPrivacy.TryGet(lookupCtx, m.LastSwitchTime, out var lastSw))
|
if ((opts.IncludeLastSwitch || opts.SortProperty == SortProperty.LastSwitch) && m.MetadataPrivacy.TryGet(lookupCtx, m.LastSwitchTime, out var lastSw))
|
||||||
profile.Append($"\n**Last switched in:** {lastSw.Value.FormatZoned(zone)}");
|
profile.Append($"\n**Last switched in:** {lastSw.Value.FormatZoned(zone)}");
|
||||||
|
@ -98,9 +98,10 @@ namespace PluralKit.Bot
|
|||||||
SortProperty.Birthdate => input
|
SortProperty.Birthdate => input
|
||||||
.OrderByDescending(m => m.AnnualBirthday.HasValue)
|
.OrderByDescending(m => m.AnnualBirthday.HasValue)
|
||||||
.ThenBy(m => m.AnnualBirthday, ReverseMaybe(Comparer<AnnualDate?>.Default)),
|
.ThenBy(m => m.AnnualBirthday, ReverseMaybe(Comparer<AnnualDate?>.Default)),
|
||||||
SortProperty.LastMessage => input
|
SortProperty.LastMessage => throw new PKError("Sorting by last message is temporarily disabled due to database issues, sorry."),
|
||||||
.OrderByDescending(m => m.LastMessage.HasValue)
|
// SortProperty.LastMessage => input
|
||||||
.ThenByDescending(m => m.LastMessage, ReverseMaybe(Comparer<ulong?>.Default)),
|
// .OrderByDescending(m => m.LastMessage.HasValue)
|
||||||
|
// .ThenByDescending(m => m.LastMessage, ReverseMaybe(Comparer<ulong?>.Default)),
|
||||||
SortProperty.LastSwitch => input
|
SortProperty.LastSwitch => input
|
||||||
.OrderByDescending(m => m.LastSwitchTime.HasValue)
|
.OrderByDescending(m => m.LastSwitchTime.HasValue)
|
||||||
.ThenByDescending(m => m.LastSwitchTime, ReverseMaybe(Comparer<Instant?>.Default)),
|
.ThenByDescending(m => m.LastSwitchTime, ReverseMaybe(Comparer<Instant?>.Default)),
|
||||||
|
@ -6,7 +6,7 @@ namespace PluralKit.Core
|
|||||||
// TODO: is inheritance here correct?
|
// TODO: is inheritance here correct?
|
||||||
public class ListedMember: PKMember
|
public class ListedMember: PKMember
|
||||||
{
|
{
|
||||||
public ulong? LastMessage { get; }
|
// public ulong? LastMessage { get; }
|
||||||
public Instant? LastSwitchTime { get; }
|
public Instant? LastSwitchTime { get; }
|
||||||
|
|
||||||
public AnnualDate? AnnualBirthday =>
|
public AnnualDate? AnnualBirthday =>
|
||||||
|
@ -30,7 +30,7 @@ create view member_list as
|
|||||||
select members.*,
|
select members.*,
|
||||||
-- Find last message ID
|
-- Find last message ID
|
||||||
-- max(mid) does full table scan, order by/limit uses index (dunno why, but it works!)
|
-- max(mid) does full table scan, order by/limit uses index (dunno why, but it works!)
|
||||||
(select mid from messages where messages.member = members.id order by mid desc nulls last limit 1) as last_message,
|
-- (select mid from messages where messages.member = members.id order by mid desc nulls last limit 1) as last_message,
|
||||||
|
|
||||||
-- Find last switch timestamp
|
-- Find last switch timestamp
|
||||||
(
|
(
|
||||||
|
Loading…
Reference in New Issue
Block a user