Move most references to PKMember.Name to go through helper extepsions for privacy

This commit is contained in:
Ske
2020-06-18 17:08:36 +02:00
parent 761270f0c3
commit 56eae82b0a
22 changed files with 97 additions and 62 deletions

View File

@@ -38,8 +38,7 @@ namespace PluralKit.Bot
if (_fields.ShowPrivacy && m.MemberVisibility == PrivacyLevel.Private)
profile += "\n*(this member is hidden)*";
var memberName = m.NamePrivacy.CanAccess(ctx) ? m.Name : (m.DisplayName ?? m.Name);
eb.AddField(memberName, profile.Truncate(1024));
eb.AddField(m.NameFor(ctx), profile.Truncate(1024));
}
}

View File

@@ -22,11 +22,10 @@ namespace PluralKit.Bot
var proxyTagsString = m.ProxyTagsString().SanitizeMentions();
if (proxyTagsString.Length > 100) // arbitrary threshold for now, tweak?
proxyTagsString = "tags too long, see member card";
var memberName = m.NamePrivacy.CanAccess(ctx) ? m.Name : (m.DisplayName ?? m.Name);
return $"[`{m.Hid}`] **{memberName.SanitizeMentions()}** *({proxyTagsString})*";
return $"[`{m.Hid}`] **{m.NameFor(ctx).SanitizeMentions()}** *({proxyTagsString})*";
}
return $"[`{m.Hid}`] **{m.Name.SanitizeMentions()}**";
return $"[`{m.Hid}`] **{m.NameFor(ctx).SanitizeMentions()}**";
}
var buf = new StringBuilder();

View File

@@ -52,10 +52,10 @@ namespace PluralKit.Bot
return str.ToString();
}
public async Task<IEnumerable<ListedMember>> Execute(IPKConnection conn, PKSystem system)
public async Task<IEnumerable<ListedMember>> Execute(IPKConnection conn, PKSystem system, LookupContext ctx)
{
var filtered = await QueryWithFilter(conn, system);
return Sort(filtered);
return Sort(filtered, ctx);
}
private Task<IEnumerable<ListedMember>> QueryWithFilter(IPKConnection conn, PKSystem system) =>
@@ -67,7 +67,7 @@ namespace PluralKit.Bot
_ => throw new ArgumentOutOfRangeException($"Unknown privacy filter {PrivacyFilter}")
}, Filter, SearchInDescription);
private IEnumerable<ListedMember> Sort(IEnumerable<ListedMember> input)
private IEnumerable<ListedMember> Sort(IEnumerable<ListedMember> input, LookupContext ctx)
{
IComparer<T> ReverseMaybe<T>(IComparer<T> c) =>
Reverse ? Comparer<T>.Create((a, b) => c.Compare(b, a)) : c;
@@ -78,7 +78,7 @@ namespace PluralKit.Bot
// As for the OrderByDescending HasValue calls: https://www.jerriepelser.com/blog/orderby-with-null-values/
// We want nulls last no matter what, even if orders are reversed
SortProperty.Hid => input.OrderBy(m => m.Hid, ReverseMaybe(culture)),
SortProperty.Name => input.OrderBy(m => m.Name, ReverseMaybe(culture)),
SortProperty.Name => input.OrderBy(m => m.NameFor(ctx), ReverseMaybe(culture)),
SortProperty.CreationDate => input.OrderBy(m => m.Created, ReverseMaybe(Comparer<Instant>.Default)),
SortProperty.MessageCount => input.OrderByDescending(m => m.MessageCount, ReverseMaybe(Comparer<int>.Default)),
SortProperty.DisplayName => input
@@ -96,7 +96,7 @@ namespace PluralKit.Bot
_ => throw new ArgumentOutOfRangeException($"Unknown sort property {SortProperty}")
})
// Lastly, add a by-name fallback order for collisions (generally hits w/ lots of null values)
.ThenBy(m => m.Name, culture);
.ThenBy(m => m.NameFor(ctx), culture);
}
public static SortFilterOptions FromFlags(Context ctx)