Add disabling front/latch autoproxy per-member

This commit is contained in:
spiral
2020-11-20 16:40:36 -05:00
parent 7f82a3e63a
commit 41247c68a6
11 changed files with 62 additions and 5 deletions

View File

@@ -19,7 +19,7 @@ namespace PluralKit.Core
internal class Database: IDatabase
{
private const string RootPath = "PluralKit.Core.Database"; // "resource path" root for SQL files
private const int TargetSchemaVersion = 11;
private const int TargetSchemaVersion = 12;
private readonly CoreConfig _config;
private readonly ILogger _logger;

View File

@@ -19,6 +19,8 @@ namespace PluralKit.Core
public string? ServerAvatar { get; }
public string? Avatar { get; }
public bool AllowAutoproxy { get; }
public string ProxyName(MessageContext ctx) => ctx.SystemTag != null
? $"{ServerName ?? DisplayName ?? Name} {ctx.SystemTag}"
: ServerName ?? DisplayName ?? Name;

View File

@@ -62,7 +62,9 @@ create function proxy_members(account_id bigint, guild_id bigint)
name text,
server_avatar text,
avatar text
avatar text,
allow_autoproxy bool
)
as $$
select
@@ -78,7 +80,9 @@ as $$
-- Avatar info
member_guild.avatar_url as server_avatar,
members.avatar_url as avatar
members.avatar_url as avatar,
members.allow_autoproxy as allow_autoproxy
from accounts
inner join systems on systems.id = accounts.system
inner join members on members.system = systems.id

View File

@@ -0,0 +1,5 @@
-- SCHEMA VERSION 12: <insert date> --
-- Add disabling front/latch autoproxy per-member --
alter table members add column allow_autoproxy bool not null default true;
update info set schema_version = 12;

View File

@@ -24,6 +24,7 @@ namespace PluralKit.Core {
public bool KeepProxy { get; private set; }
public Instant Created { get; private set; }
public int MessageCount { get; private set; }
public bool AllowAutoproxy { get; private set; }
public PrivacyLevel MemberVisibility { get; private set; }
public PrivacyLevel DescriptionPrivacy { get; private set; }

View File

@@ -16,6 +16,7 @@ namespace PluralKit.Core
public Partial<ProxyTag[]> ProxyTags { get; set; }
public Partial<bool> KeepProxy { get; set; }
public Partial<int> MessageCount { get; set; }
public Partial<bool> AllowAutoproxy { get; set; }
public Partial<PrivacyLevel> Visibility { get; set; }
public Partial<PrivacyLevel> NamePrivacy { get; set; }
public Partial<PrivacyLevel> DescriptionPrivacy { get; set; }
@@ -35,6 +36,7 @@ namespace PluralKit.Core
.With("proxy_tags", ProxyTags)
.With("keep_proxy", KeepProxy)
.With("message_count", MessageCount)
.With("allow_autoproxy", AllowAutoproxy)
.With("member_visibility", Visibility)
.With("name_privacy", NamePrivacy)
.With("description_privacy", DescriptionPrivacy)