Couple more slight tweaks :)
This commit is contained in:
parent
1bb5d203df
commit
10c01da39b
@ -245,7 +245,7 @@ namespace PluralKit.Bot
|
||||
throw new PKError("You do not have permission to access this information.");
|
||||
}
|
||||
|
||||
var groups = (await conn.QueryGroupsInSystem(system.Id))
|
||||
var groups = (await conn.QueryGroupList(system.Id))
|
||||
.Where(g => g.Visibility.CanAccess(pctx))
|
||||
.ToList();
|
||||
|
||||
@ -262,14 +262,14 @@ namespace PluralKit.Bot
|
||||
var title = system.Name != null ? $"Groups of {system.Name} (`{system.Hid}`)" : $"Groups of `{system.Hid}`";
|
||||
await ctx.Paginate(groups.ToAsyncEnumerable(), groups.Count, 25, title, Renderer);
|
||||
|
||||
Task Renderer(DiscordEmbedBuilder eb, IEnumerable<PKGroup> page)
|
||||
Task Renderer(DiscordEmbedBuilder eb, IEnumerable<ListedGroup> page)
|
||||
{
|
||||
eb.WithSimpleLineContent(page.Select(g =>
|
||||
{
|
||||
if (g.DisplayName != null)
|
||||
return $"[`{g.Hid}`] **{g.Name}** ({g.DisplayName})";
|
||||
return $"[`{g.Hid}`] **{g.Name}** ({g.DisplayName}) ({"member".ToQuantity(g.MemberCount)})";
|
||||
else
|
||||
return $"[`{g.Hid}`] **{g.Name}**";
|
||||
return $"[`{g.Hid}`] **{g.Name}** ({"member".ToQuantity(g.MemberCount)})";
|
||||
}));
|
||||
eb.WithFooter($"{groups.Count} total.");
|
||||
return Task.CompletedTask;
|
||||
|
@ -26,6 +26,7 @@ create table group_members (
|
||||
primary key (group_id, member_id)
|
||||
);
|
||||
|
||||
alter table systems add column group_list_privacy integer check (group_list_privacy in (1, 2)) not null default systems.member_list_privacy;
|
||||
alter table systems add column group_list_privacy integer check (group_list_privacy in (1, 2)) not null default 1;
|
||||
update systems set group_list_privacy = member_list_privacy;
|
||||
|
||||
update info set schema_version = 9;
|
||||
|
@ -12,6 +12,9 @@ namespace PluralKit.Core
|
||||
public static Task<IEnumerable<SystemFronter>> QueryCurrentFronters(this IPKConnection conn, SystemId system) =>
|
||||
conn.QueryAsync<SystemFronter>("select * from system_fronters where system = @system", new {system});
|
||||
|
||||
public static Task<IEnumerable<ListedGroup>> QueryGroupList(this IPKConnection conn, SystemId system) =>
|
||||
conn.QueryAsync<ListedGroup>("select * from group_list where system = @System", new {System = system});
|
||||
|
||||
public static Task<IEnumerable<ListedMember>> QueryMemberList(this IPKConnection conn, SystemId system, MemberListQueryOptions opts)
|
||||
{
|
||||
StringBuilder query;
|
||||
|
7
PluralKit.Core/Database/Views/ListedGroup.cs
Normal file
7
PluralKit.Core/Database/Views/ListedGroup.cs
Normal file
@ -0,0 +1,7 @@
|
||||
namespace PluralKit.Core
|
||||
{
|
||||
public class ListedGroup : PKGroup
|
||||
{
|
||||
public int MemberCount { get; }
|
||||
}
|
||||
}
|
@ -55,3 +55,9 @@ select members.*,
|
||||
-- Any other privacy (rn just '2'), return null description (missing case = null in SQL)
|
||||
end as public_description
|
||||
from members;
|
||||
|
||||
create view group_list as
|
||||
select groups.*,
|
||||
-- Find group member count
|
||||
(select count(*) from group_members where group_id = groups.id) as member_count
|
||||
from groups;
|
@ -5,6 +5,7 @@
|
||||
drop view if exists system_last_switch;
|
||||
drop view if exists system_fronters;
|
||||
drop view if exists member_list;
|
||||
drop view if exists group_list;
|
||||
|
||||
drop function if exists message_context;
|
||||
drop function if exists proxy_members;
|
||||
|
@ -35,9 +35,6 @@ namespace PluralKit.Core
|
||||
public static Task<PKGroup?> QueryGroupByHid(this IPKConnection conn, string hid) =>
|
||||
conn.QueryFirstOrDefaultAsync<PKGroup?>("select * from groups where hid = @hid", new {hid = hid.ToLowerInvariant()});
|
||||
|
||||
public static Task<IEnumerable<PKGroup>> QueryGroupsInSystem(this IPKConnection conn, SystemId system) =>
|
||||
conn.QueryAsync<PKGroup>("select * from groups where system = @System", new {System = system});
|
||||
|
||||
public static Task<int> QueryGroupMemberCount(this IPKConnection conn, GroupId id,
|
||||
PrivacyLevel? privacyFilter = null)
|
||||
{
|
||||
|
@ -5,20 +5,20 @@ namespace PluralKit.Core
|
||||
{
|
||||
public class PKGroup
|
||||
{
|
||||
public GroupId Id { get; }
|
||||
public string Hid { get; } = null!;
|
||||
public SystemId System { get; }
|
||||
public GroupId Id { get; private set; }
|
||||
public string Hid { get; private set; } = null!;
|
||||
public SystemId System { get; private set; }
|
||||
|
||||
public string Name { get; } = null!;
|
||||
public string? DisplayName { get; }
|
||||
public string? Description { get; }
|
||||
public string? Icon { get; }
|
||||
public string Name { get; private set; } = null!;
|
||||
public string? DisplayName { get; private set; }
|
||||
public string? Description { get; private set; }
|
||||
public string? Icon { get; private set; }
|
||||
|
||||
public PrivacyLevel DescriptionPrivacy { get; }
|
||||
public PrivacyLevel IconPrivacy { get; }
|
||||
public PrivacyLevel ListPrivacy { get; }
|
||||
public PrivacyLevel Visibility { get; }
|
||||
public PrivacyLevel DescriptionPrivacy { get; private set; }
|
||||
public PrivacyLevel IconPrivacy { get; private set; }
|
||||
public PrivacyLevel ListPrivacy { get; private set; }
|
||||
public PrivacyLevel Visibility { get; private set; }
|
||||
|
||||
public Instant Created { get; }
|
||||
public Instant Created { get; private set; }
|
||||
}
|
||||
}
|
Loading…
Reference in New Issue
Block a user