fix(bot): fix import/export with incorrect webhook_avatar_url
Incorrect use of `member.WebhookAvatarFor` in member JSON creation
meant that exports of members without a webhook avatar set had the
normal avatar URL present in both fields.
This also adds a check to the importer to ignore the value of the
webhook_avatar_url field if it is the same as the avatar_url field.
Fixes: ccb89f50e9
(feat(bot): allow separate member avatars for proxied messages)
Co-authored-by: spiral <spiral@spiral.sh>
This commit is contained in:
parent
399cfdb19f
commit
2bffee5450
@ -132,7 +132,7 @@ public static class PKMemberExt
|
||||
o.Add("birthday", member.BirthdayFor(ctx)?.FormatExport());
|
||||
o.Add("pronouns", member.PronounsFor(ctx));
|
||||
o.Add("avatar_url", member.AvatarFor(ctx).TryGetCleanCdnUrl());
|
||||
o.Add("webhook_avatar_url", member.WebhookAvatarFor(ctx).TryGetCleanCdnUrl());
|
||||
o.Add("webhook_avatar_url", member.AvatarPrivacy.Get(ctx, member.WebhookAvatarUrl?.TryGetCleanCdnUrl()));
|
||||
o.Add("banner", member.DescriptionPrivacy.Get(ctx, member.BannerImage).TryGetCleanCdnUrl());
|
||||
o.Add("description", member.DescriptionFor(ctx));
|
||||
o.Add("created", member.CreatedFor(ctx)?.FormatExport());
|
||||
|
@ -98,8 +98,17 @@ public class MemberPatch: PatchObject
|
||||
if (o.ContainsKey("name")) patch.Name = o.Value<string>("name");
|
||||
if (o.ContainsKey("color")) patch.Color = o.Value<string>("color").NullIfEmpty()?.ToLower();
|
||||
if (o.ContainsKey("display_name")) patch.DisplayName = o.Value<string>("display_name").NullIfEmpty();
|
||||
if (o.ContainsKey("webhook_avatar_url")) patch.WebhookAvatarUrl = o.Value<string>("webhook_avatar_url").NullIfEmpty();
|
||||
if (o.ContainsKey("avatar_url")) patch.AvatarUrl = o.Value<string>("avatar_url").NullIfEmpty();
|
||||
if (o.ContainsKey("webhook_avatar_url"))
|
||||
{
|
||||
var str = o.Value<string>("webhook_avatar_url").NullIfEmpty();
|
||||
// XXX: ignore webhook_avatar_url if it's exactly the same as avatar_url
|
||||
// to work around some export files containing the value of avatar_url in
|
||||
// both fields accidentally
|
||||
if (str != null && patch.AvatarUrl.Value != str) patch.WebhookAvatarUrl = str;
|
||||
else patch.WebhookAvatarUrl = null;
|
||||
}
|
||||
|
||||
if (o.ContainsKey("banner")) patch.BannerImage = o.Value<string>("banner").NullIfEmpty();
|
||||
|
||||
if (o.ContainsKey("birthday"))
|
||||
|
Loading…
Reference in New Issue
Block a user