feat: add support for external avatar hosting service (#614)

This commit is contained in:
Astrid 2024-02-11 03:53:46 +01:00 committed by GitHub
parent 8befb1c857
commit 8157c6932e
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
9 changed files with 94 additions and 5 deletions

View file

@ -16,13 +16,15 @@ public class Member
private readonly HttpClient _client;
private readonly DispatchService _dispatch;
private readonly EmbedService _embeds;
private readonly AvatarHostingService _avatarHosting;
public Member(EmbedService embeds, HttpClient client,
DispatchService dispatch)
DispatchService dispatch, AvatarHostingService avatarHosting)
{
_embeds = embeds;
_client = client;
_dispatch = dispatch;
_avatarHosting = avatarHosting;
}
public async Task NewMember(Context ctx)
@ -78,6 +80,8 @@ public class Member
uriBuilder.Query = "";
img.CleanUrl = uriBuilder.Uri.AbsoluteUri;
img = await _avatarHosting.TryRehostImage(img, AvatarHostingService.RehostedImageType.Avatar, ctx.Author.Id);
await AvatarUtils.VerifyAvatarOrThrow(_client, img.Url);
await ctx.Repository.UpdateMember(member.Id, new MemberPatch { AvatarUrl = img.CleanUrl ?? img.Url }, conn);