From e6fe1eacc36245c9799afae6e4dfaecb62ea65d6 Mon Sep 17 00:00:00 2001 From: TheArcaneBrony Date: Thu, 26 Oct 2023 13:15:18 +0000 Subject: Changes, fixes --- MatrixRoomUtils.Web/Pages/User/DMManager.razor | 14 +-- MatrixRoomUtils.Web/Pages/User/Manage.razor | 126 ------------------------- MatrixRoomUtils.Web/Pages/User/Profile.razor | 126 +++++++++++++++++++++++++ 3 files changed, 133 insertions(+), 133 deletions(-) delete mode 100644 MatrixRoomUtils.Web/Pages/User/Manage.razor create mode 100644 MatrixRoomUtils.Web/Pages/User/Profile.razor (limited to 'MatrixRoomUtils.Web/Pages/User') diff --git a/MatrixRoomUtils.Web/Pages/User/DMManager.razor b/MatrixRoomUtils.Web/Pages/User/DMManager.razor index 04ff6e5..92e1bc2 100644 --- a/MatrixRoomUtils.Web/Pages/User/DMManager.razor +++ b/MatrixRoomUtils.Web/Pages/User/DMManager.razor @@ -16,7 +16,7 @@ @code { private string? _status; - private AuthenticatedHomeserverGeneric? HomeServer { get; set; } + private AuthenticatedHomeserverGeneric? Homeserver { get; set; } private Dictionary> DMRooms { get; set; } = new(); public string? Status { @@ -28,19 +28,19 @@ } protected override async Task OnInitializedAsync() { - HomeServer = await MRUStorage.GetCurrentSessionOrNavigate(); - if (HomeServer is null) return; + Homeserver = await MRUStorage.GetCurrentSessionOrNavigate(); + if (Homeserver is null) return; Status = "Loading global profile..."; - if (HomeServer.WhoAmI?.UserId is null) return; + if (Homeserver.WhoAmI?.UserId is null) return; Status = "Loading DM list from account data..."; - var dms = await HomeServer.GetAccountDataAsync>>("m.direct"); + var dms = await Homeserver.GetAccountDataAsync>>("m.direct"); DMRooms.Clear(); foreach (var (userId, rooms) in dms) { var roomList = new List(); - DMRooms.Add(await HomeServer.GetProfileAsync(userId), roomList); + DMRooms.Add(await Homeserver.GetProfileAsync(userId), roomList); foreach (var room in rooms) { - roomList.Add(new RoomInfo() { Room = HomeServer.GetRoom(room) }); + roomList.Add(new RoomInfo() { Room = Homeserver.GetRoom(room) }); } StateHasChanged(); } diff --git a/MatrixRoomUtils.Web/Pages/User/Manage.razor b/MatrixRoomUtils.Web/Pages/User/Manage.razor deleted file mode 100644 index eac47e8..0000000 --- a/MatrixRoomUtils.Web/Pages/User/Manage.razor +++ /dev/null @@ -1,126 +0,0 @@ -@page "/User/Profile" -@using LibMatrix.Homeservers -@using LibMatrix.EventTypes.Spec.State -@using ArcaneLibs.Extensions -@using LibMatrix.Responses -

Manage Profile - @HomeServer?.WhoAmI?.UserId

-
- -@if (Profile is not null) { -

Profile

-
- - -
- Display name:
- Avatar URL: -
- Update profile - Update profile (restore room overrides) -
- @if (!string.IsNullOrWhiteSpace(Status)) { -

@Status

- } - -
- Room profiles
- - @foreach (var (roomId, roomProfile) in RoomProfiles.OrderBy(x=>RoomNames.TryGetValue(x.Key, out var _name) ? _name : x.Key)) { -
- @(RoomNames.TryGetValue(roomId, out var name) ? name : roomId) - -
- Display name:
- Avatar URL: -
- Update profile -
-
- @if (!string.IsNullOrWhiteSpace(Status)) { -

@Status

- } -
-
- } -
-} - -@code { - private string? _status = null; - - private AuthenticatedHomeserverGeneric? HomeServer { get; set; } - private UserProfileResponse? Profile { get; set; } - private UserProfileResponse? OldProfile { get; set; } - - private string? Status { - get => _status; - set { _status = value; StateHasChanged(); } - } - - private Dictionary RoomProfiles { get; set; } = new(); - private Dictionary RoomNames { get; set; } = new(); - - protected override async Task OnInitializedAsync() { - HomeServer = await MRUStorage.GetCurrentSessionOrNavigate(); - if (HomeServer is null) return; - Status = "Loading global profile..."; - if (HomeServer.WhoAmI?.UserId is null) return; - Profile = (await HomeServer.GetProfileAsync(HomeServer.WhoAmI.UserId)).DeepClone(); - OldProfile = (await HomeServer.GetProfileAsync(HomeServer.WhoAmI.UserId)).DeepClone(); - Status = "Loading room profiles..."; - var roomProfiles = HomeServer.GetRoomProfilesAsync(); - await foreach (var (roomId, roomProfile) in roomProfiles) { - // Status = $"Got profile for {roomId}..."; - RoomProfiles[roomId] = roomProfile.DeepClone(); - } - StateHasChanged(); - Status = "Room profiles loaded, loading room names..."; - - var roomNameTasks = RoomProfiles.Keys.Select(x => HomeServer.GetRoom(x)).Select(async x => { - var name = await x.GetNameAsync(); - return new KeyValuePair(x.RoomId, name); - }).ToAsyncEnumerable(); - await foreach (var (roomId, roomName) in roomNameTasks) { - // Status = $"Got room name for {roomId}: {roomName}"; - RoomNames[roomId] = roomName; - } - - StateHasChanged(); - Status = null; - - await base.OnInitializedAsync(); - } - - private async Task AvatarChanged(InputFileChangeEventArgs arg) { - var res = await HomeServer.UploadFile(arg.File.Name, arg.File.OpenReadStream(Int64.MaxValue), arg.File.ContentType); - Console.WriteLine(res); - Profile.AvatarUrl = res; - StateHasChanged(); - } - - private async Task UpdateProfile(bool restoreRoomProfiles = false) { - Status = "Busy processing global profile update, please do not leave this page..."; - StateHasChanged(); - await HomeServer.UpdateProfileAsync(Profile, restoreRoomProfiles); - Status = null; - StateHasChanged(); - await OnInitializedAsync(); - } - private async Task RoomAvatarChanged(InputFileChangeEventArgs arg, string roomId) { - var res = await HomeServer.UploadFile(arg.File.Name, arg.File.OpenReadStream(Int64.MaxValue), arg.File.ContentType); - Console.WriteLine(res); - RoomProfiles[roomId].AvatarUrl = res; - StateHasChanged(); - } - - private async Task UpdateRoomProfile(string roomId) { - Status = "Busy processing room profile update, please do not leave this page..."; - StateHasChanged(); - var room = HomeServer.GetRoom(roomId); - await room.SendStateEventAsync("m.room.member", HomeServer.WhoAmI.UserId, RoomProfiles[roomId]); - Status = null; - StateHasChanged(); - } - -} - diff --git a/MatrixRoomUtils.Web/Pages/User/Profile.razor b/MatrixRoomUtils.Web/Pages/User/Profile.razor new file mode 100644 index 0000000..ae3fb76 --- /dev/null +++ b/MatrixRoomUtils.Web/Pages/User/Profile.razor @@ -0,0 +1,126 @@ +@page "/User/Profile" +@using LibMatrix.Homeservers +@using LibMatrix.EventTypes.Spec.State +@using ArcaneLibs.Extensions +@using LibMatrix.Responses +

Manage Profile - @Homeserver?.WhoAmI?.UserId

+
+ +@if (NewProfile is not null) { +

Profile

+
+ + +
+ Display name:
+ Avatar URL: +
+ Update profile + Update profile (restore room overrides) +
+ @if (!string.IsNullOrWhiteSpace(Status)) { +

@Status

+ } + +
+ Room profiles
+ + @foreach (var (roomId, roomProfile) in RoomProfiles.OrderBy(x=>RoomNames.TryGetValue(x.Key, out var _name) ? _name : x.Key)) { +
+ @(RoomNames.TryGetValue(roomId, out var name) ? name : roomId) + +
+ Display name:
+ Avatar URL: +
+ Update profile +
+
+ @if (!string.IsNullOrWhiteSpace(Status)) { +

@Status

+ } +
+
+ } +
+} + +@code { + private string? _status = null; + + private AuthenticatedHomeserverGeneric? Homeserver { get; set; } + private UserProfileResponse? NewProfile { get; set; } + private UserProfileResponse? OldProfile { get; set; } + + private string? Status { + get => _status; + set { _status = value; StateHasChanged(); } + } + + private Dictionary RoomProfiles { get; set; } = new(); + private Dictionary RoomNames { get; set; } = new(); + + protected override async Task OnInitializedAsync() { + Homeserver = await MRUStorage.GetCurrentSessionOrNavigate(); + if (Homeserver is null) return; + Status = "Loading global profile..."; + if (Homeserver.WhoAmI?.UserId is null) return; + NewProfile = (await Homeserver.GetProfileAsync(Homeserver.WhoAmI.UserId)).DeepClone(); + OldProfile = (await Homeserver.GetProfileAsync(Homeserver.WhoAmI.UserId)).DeepClone(); + Status = "Loading room profiles..."; + var roomProfiles = Homeserver.GetRoomProfilesAsync(); + await foreach (var (roomId, roomProfile) in roomProfiles) { + // Status = $"Got profile for {roomId}..."; + RoomProfiles[roomId] = roomProfile.DeepClone(); + } + StateHasChanged(); + Status = "Room profiles loaded, loading room names..."; + + var roomNameTasks = RoomProfiles.Keys.Select(x => Homeserver.GetRoom(x)).Select(async x => { + var name = await x.GetNameOrFallbackAsync(); + return new KeyValuePair(x.RoomId, name); + }).ToAsyncEnumerable(); + await foreach (var (roomId, roomName) in roomNameTasks) { + // Status = $"Got room name for {roomId}: {roomName}"; + RoomNames[roomId] = roomName; + } + + StateHasChanged(); + Status = null; + + await base.OnInitializedAsync(); + } + + private async Task AvatarChanged(InputFileChangeEventArgs arg) { + var res = await Homeserver.UploadFile(arg.File.Name, arg.File.OpenReadStream(Int64.MaxValue), arg.File.ContentType); + Console.WriteLine(res); + NewProfile.AvatarUrl = res; + StateHasChanged(); + } + + private async Task UpdateProfile(bool restoreRoomProfiles = false) { + Status = "Busy processing global profile update, please do not leave this page..."; + StateHasChanged(); + await Homeserver.UpdateProfileAsync(NewProfile, restoreRoomProfiles); + Status = null; + StateHasChanged(); + await OnInitializedAsync(); + } + private async Task RoomAvatarChanged(InputFileChangeEventArgs arg, string roomId) { + var res = await Homeserver.UploadFile(arg.File.Name, arg.File.OpenReadStream(Int64.MaxValue), arg.File.ContentType); + Console.WriteLine(res); + RoomProfiles[roomId].AvatarUrl = res; + StateHasChanged(); + } + + private async Task UpdateRoomProfile(string roomId) { + Status = "Busy processing room profile update, please do not leave this page..."; + StateHasChanged(); + var room = Homeserver.GetRoom(roomId); + await room.SendStateEventAsync("m.room.member", Homeserver.WhoAmI.UserId, RoomProfiles[roomId]); + Status = null; + StateHasChanged(); + } + +} + -- cgit 1.5.1