diff --git a/MatrixUtils.Web/Pages/Dev/DevOptions.razor b/MatrixUtils.Web/Pages/Dev/DevOptions.razor
index e94cf76..33e577f 100644
--- a/MatrixUtils.Web/Pages/Dev/DevOptions.razor
+++ b/MatrixUtils.Web/Pages/Dev/DevOptions.razor
@@ -19,6 +19,10 @@
<span>Export local storage: </span>
<button @onclick="@ExportLocalStorage">Export</button>
</p>
+<details>
+ <summary>Manage local sessions</summary>
+
+</details>
@if (userSettings is not null) {
<InputCheckbox @bind-Value="@userSettings.DeveloperSettings.EnableLogViewers" @oninput="@LogStuff"></InputCheckbox>
@@ -35,9 +39,9 @@
@code {
- private RMUStorageWrapper.Settings? userSettings { get; set; }
+ private RmuSessionStore.Settings? userSettings { get; set; }
protected override async Task OnInitializedAsync() {
- // userSettings = await TieredStorage.DataStorageProvider.LoadObjectAsync<RMUStorageWrapper.Settings>("rmu.settings");
+ // userSettings = await TieredStorage.DataStorageProvider.LoadObjectAsync<RmuSessionStore.Settings>("rmu.settings");
await base.OnInitializedAsync();
}
diff --git a/MatrixUtils.Web/Pages/Dev/DevUtilities.razor b/MatrixUtils.Web/Pages/Dev/DevUtilities.razor
index 636c0f9..3b2d533 100644
--- a/MatrixUtils.Web/Pages/Dev/DevUtilities.razor
+++ b/MatrixUtils.Web/Pages/Dev/DevUtilities.razor
@@ -39,7 +39,7 @@ else {
protected override async Task OnInitializedAsync() {
await base.OnInitializedAsync();
- hs = await RmuStorage.GetCurrentSessionOrNavigate();
+ hs = await sessionStore.GetCurrentHomeserver(navigateOnFailure: true);
if (hs == null) return;
Rooms = (await hs.GetJoinedRooms()).Select(x => x.RoomId).ToList();
Console.WriteLine("Fetched joined rooms!");
diff --git a/MatrixUtils.Web/Pages/Dev/WellKnownRes.razor b/MatrixUtils.Web/Pages/Dev/WellKnownRes.razor
index 9dc9556..1906dd8 100644
--- a/MatrixUtils.Web/Pages/Dev/WellKnownRes.razor
+++ b/MatrixUtils.Web/Pages/Dev/WellKnownRes.razor
@@ -56,7 +56,7 @@
AuthenticatedHomeserverGeneric? hs { get; set; }
protected override async Task OnInitializedAsync() {
- hs = await RmuStorage.GetCurrentSessionOrNavigate();
+ hs = await sessionStore.GetCurrentHomeserver(navigateOnFailure: true);
if (hs is null) return;
if (RoomId is not null) {
diff --git a/MatrixUtils.Web/Pages/HSAdmin/HSAdmin.razor b/MatrixUtils.Web/Pages/HSAdmin/HSAdmin.razor
index 6ccdce4..e1b46e2 100644
--- a/MatrixUtils.Web/Pages/HSAdmin/HSAdmin.razor
+++ b/MatrixUtils.Web/Pages/HSAdmin/HSAdmin.razor
@@ -30,7 +30,7 @@ else {
public ServerVersionResponse? ServerVersionResponse { get; set; }
protected override async Task OnInitializedAsync() {
- Homeserver = await RmuStorage.GetCurrentSessionOrNavigate();
+ Homeserver = await sessionStore.GetCurrentHomeserver(navigateOnFailure: true);
if (Homeserver is null) return;
ServerVersionResponse = await (Homeserver.FederationClient?.GetServerVersionAsync() ?? Task.FromResult<ServerVersionResponse?>(null));
await base.OnInitializedAsync();
diff --git a/MatrixUtils.Web/Pages/HSAdmin/HSE/ManageExternalProfiles.razor b/MatrixUtils.Web/Pages/HSAdmin/HSE/ManageExternalProfiles.razor
index 6d492a7..87600c6 100644
--- a/MatrixUtils.Web/Pages/HSAdmin/HSE/ManageExternalProfiles.razor
+++ b/MatrixUtils.Web/Pages/HSAdmin/HSE/ManageExternalProfiles.razor
@@ -17,7 +17,7 @@
protected override async Task OnInitializedAsync()
{
- Homeserver = await RmuStorage.GetCurrentSessionOrNavigate();
+ Homeserver = await sessionStore.GetCurrentHomeserver(navigateOnFailure: true);
if (Homeserver is null) return;
await LoadProfiles();
await base.OnInitializedAsync();
@@ -33,9 +33,9 @@
private async Task AddAllLocalProfiles() {
if(Homeserver is AuthenticatedHomeserverHSE hse) {
- var sessions = await RmuStorage.GetAllTokens();
+ var sessions = await sessionStore.GetAllSessions();
foreach(var session in sessions) {
- await hse.SetExternalProfile(session.UserId, session);
+ await hse.SetExternalProfile(session.Value.Auth.UserId, session.Value.Auth);
}
await LoadProfiles();
}
diff --git a/MatrixUtils.Web/Pages/HSAdmin/Synapse/BackgroundJobs.razor b/MatrixUtils.Web/Pages/HSAdmin/Synapse/BackgroundJobs.razor
index 02bf88f..d855cba 100644
--- a/MatrixUtils.Web/Pages/HSAdmin/Synapse/BackgroundJobs.razor
+++ b/MatrixUtils.Web/Pages/HSAdmin/Synapse/BackgroundJobs.razor
@@ -10,7 +10,7 @@
private SynapseAdminBackgroundUpdateStatusResponse? BackgroundJobStatus { get; set; }
protected override async Task OnInitializedAsync() {
- var hs = await RmuStorage.GetCurrentSessionOrNavigate() as AuthenticatedHomeserverSynapse;
+ var hs = await sessionStore.GetCurrentHomeserver(navigateOnFailure: true) as AuthenticatedHomeserverSynapse;
if (hs is null) return;
Homeserver = hs;
diff --git a/MatrixUtils.Web/Pages/HSAdmin/Synapse/BlockMedia.razor b/MatrixUtils.Web/Pages/HSAdmin/Synapse/BlockMedia.razor
index 6de4e4d..d07ff08 100644
--- a/MatrixUtils.Web/Pages/HSAdmin/Synapse/BlockMedia.razor
+++ b/MatrixUtils.Web/Pages/HSAdmin/Synapse/BlockMedia.razor
@@ -77,7 +77,7 @@
private AuthenticatedHomeserverSynapse? Homeserver { get; set; }
protected override async Task OnInitializedAsync() {
- var hs = await RmuStorage.GetCurrentSessionOrNavigate() as AuthenticatedHomeserverSynapse;
+ var hs = await sessionStore.GetCurrentHomeserver(navigateOnFailure: true) as AuthenticatedHomeserverSynapse;
if (hs is null) return;
Homeserver = hs;
diff --git a/MatrixUtils.Web/Pages/HSAdmin/Synapse/RoomQuery.razor b/MatrixUtils.Web/Pages/HSAdmin/Synapse/RoomQuery.razor
index 0a93df8..79e7357 100644
--- a/MatrixUtils.Web/Pages/HSAdmin/Synapse/RoomQuery.razor
+++ b/MatrixUtils.Web/Pages/HSAdmin/Synapse/RoomQuery.razor
@@ -293,7 +293,7 @@
private async Task Search() {
Results.Clear();
- var hs = await RmuStorage.GetCurrentSessionOrNavigate();
+ var hs = await sessionStore.GetCurrentHomeserver(navigateOnFailure: true);
if (hs is AuthenticatedHomeserverSynapse synapse) {
Homeserver = synapse;
var searchRooms = synapse.Admin.SearchRoomsAsync(orderBy: OrderBy!, dir: Ascending ? "f" : "b", searchTerm: SearchTerm, localFilter: Filter).GetAsyncEnumerator();
diff --git a/MatrixUtils.Web/Pages/Index.razor b/MatrixUtils.Web/Pages/Index.razor
index b9d3233..7103dc5 100644
--- a/MatrixUtils.Web/Pages/Index.razor
+++ b/MatrixUtils.Web/Pages/Index.razor
@@ -22,7 +22,7 @@ Small collection of tools to do not-so-everyday things.
<form>
<table>
@foreach (var session in _sessions.OrderByDescending(x => x.UserInfo.RoomCount)) {
- var auth = session.UserAuth;
+ var auth = session.Auth;
<tr class="user-entry">
<td>
@if (!string.IsNullOrWhiteSpace(@session.UserInfo?.AvatarUrl)) {
@@ -36,7 +36,7 @@ Small collection of tools to do not-so-everyday things.
</td>
<td class="user-info">
<p>
- <input type="radio" name="csa" checked="@(_currentSession.AccessToken == auth.AccessToken)" @onclick="@(() => SwitchSession(auth))"
+ <input type="radio" name="csa" checked="@(_currentSession.Auth.AccessToken == auth.AccessToken)" @onclick="@(() => SwitchSession(session.SessionId))"
style="text-decoration-line: unset;"/>
<b>@session.UserInfo.DisplayName</b> on <b>@auth.Homeserver</b><br/>
</p>
@@ -53,13 +53,14 @@ Small collection of tools to do not-so-everyday things.
<p>T=@session.Homeserver.GetType().FullName</p>
<p>D=@session.Homeserver.WhoAmI.DeviceId</p>
<p>U=@session.Homeserver.WhoAmI.UserId</p>
+ <p>S=@session.Homeserver.WhoAmI.UserId</p>
}
</td>
<td>
<p>
- <LinkButton OnClick="@(() => ManageUser(auth))">Manage</LinkButton>
- <LinkButton OnClick="@(() => RemoveUser(auth))">Remove</LinkButton>
- <LinkButton OnClick="@(() => RemoveUser(auth, true))">Log out</LinkButton>
+ <LinkButton OnClick="@(() => ManageUser(session.SessionId))">Manage</LinkButton>
+ <LinkButton OnClick="@(() => RemoveUser(session.SessionId))">Remove</LinkButton>
+ <LinkButton OnClick="@(() => RemoveUser(session.SessionId, true))">Log out</LinkButton>
</p>
</td>
</tr>
@@ -79,16 +80,16 @@ Small collection of tools to do not-so-everyday things.
<td>
<p>
@{
- string[] parts = session.UserId.Split(':');
+ string[] parts = session.Auth.UserId.Split(':');
}
<span>@parts[0][1..]</span> on <span>@parts[1]</span>
- @if (!string.IsNullOrWhiteSpace(session.Proxy)) {
- <span class="badge badge-info"> (proxied via @session.Proxy)</span>
+ @if (!string.IsNullOrWhiteSpace(session.Auth.Proxy)) {
+ <span class="badge badge-info"> (proxied via @session.Auth.Proxy)</span>
}
</p>
</td>
<td>
- <LinkButton OnClick="@(() => RemoveUser(session))">Remove</LinkButton>
+ <LinkButton OnClick="@(() => RemoveUser(session.SessionId))">Remove</LinkButton>
</td>
</tr>
}
@@ -108,19 +109,19 @@ Small collection of tools to do not-so-everyday things.
<td>
<p>
@{
- string[] parts = session.UserId.Split(':');
+ string[] parts = session.Auth.UserId.Split(':');
}
<span>@parts[0][1..]</span> on <span>@parts[1]</span>
- @if (!string.IsNullOrWhiteSpace(session.Proxy)) {
- <span class="badge badge-info"> (proxied via @session.Proxy)</span>
+ @if (!string.IsNullOrWhiteSpace(session.Auth.Proxy)) {
+ <span class="badge badge-info"> (proxied via @session.Auth.Proxy)</span>
}
</p>
</td>
<td>
- <LinkButton OnClick="@(() => Task.Run(() => NavigationManager.NavigateTo($"/InvalidSession?ctx={session.AccessToken}")))">Re-login</LinkButton>
+ <LinkButton OnClick="@(() => Task.Run(() => NavigationManager.NavigateTo($"/InvalidSession?ctx={session.SessionId}")))">Re-login</LinkButton>
</td>
<td>
- <LinkButton OnClick="@(() => RemoveUser(session))">Remove</LinkButton>
+ <LinkButton OnClick="@(() => RemoveUser(session.SessionId))">Remove</LinkButton>
</td>
</tr>
}
@@ -136,34 +137,34 @@ Small collection of tools to do not-so-everyday things.
private const bool _debug = false;
#endif
- private class AuthInfo {
- public UserAuth? UserAuth { get; set; }
+ private class HomepageSessionInfo : RmuSessionStore.SessionInfo {
public UserInfo? UserInfo { get; set; }
public ServerVersionResponse? ServerVersion { get; set; }
public AuthenticatedHomeserverGeneric? Homeserver { get; set; }
}
- private readonly List<AuthInfo> _sessions = [];
- private readonly List<UserAuth> _offlineSessions = [];
- private readonly List<UserAuth> _invalidSessions = [];
- private LoginResponse? _currentSession;
+ private readonly List<HomepageSessionInfo> _sessions = [];
+ private readonly List<RmuSessionStore.SessionInfo> _offlineSessions = [];
+ private readonly List<RmuSessionStore.SessionInfo> _invalidSessions = [];
+ private RmuSessionStore.SessionInfo? _currentSession;
int scannedSessions, totalSessions = 1;
private SvgIdenticonGenerator _identiconGenerator = new();
protected override async Task OnInitializedAsync() {
Console.WriteLine("Index.OnInitializedAsync");
logger.LogDebug("Initialising index page");
- _currentSession = await RmuStorage.GetCurrentToken();
+ await sessionStore.RunMigrations();
+
+ _currentSession = await sessionStore.GetCurrentSession();
_sessions.Clear();
_offlineSessions.Clear();
- var tokens = await RmuStorage.GetAllTokens();
+ var tokens = await sessionStore.GetAllSessions();
scannedSessions = 0;
totalSessions = tokens.Count;
logger.LogDebug("Found {0} tokens", totalSessions);
if (tokens is not { Count: > 0 }) {
Console.WriteLine("No tokens found, trying migration from MRU...");
- await RmuStorage.MigrateFromMRU();
- tokens = await RmuStorage.GetAllTokens();
+ tokens = await sessionStore.GetAllSessions();
if (tokens is not { Count: > 0 }) {
Console.WriteLine("No tokens found");
return;
@@ -173,8 +174,9 @@ Small collection of tools to do not-so-everyday things.
List<string> offlineServers = [];
var sema = new SemaphoreSlim(8, 8);
var updateSw = Stopwatch.StartNew();
- var tasks = tokens.Select(async token => {
+ var tasks = tokens.Select(async session => {
await sema.WaitAsync();
+ var token = session.Value.Auth;
AuthenticatedHomeserverGeneric hs;
try {
@@ -197,14 +199,15 @@ Small collection of tools to do not-so-everyday things.
var joinedRoomsTask = hs.GetJoinedRooms();
var profileTask = hs.GetProfileAsync(hs.WhoAmI.UserId);
_sessions.Add(new() {
+ Auth = token,
+ SessionId = session.Value.SessionId,
+ Homeserver = hs,
UserInfo = new() {
AvatarUrl = (await profileTask).AvatarUrl,
RoomCount = (await joinedRoomsTask).Count,
DisplayName = (await profileTask).DisplayName ?? hs.WhoAmI.UserId
},
- UserAuth = token,
ServerVersion = await (serverVersionTask ?? Task.FromResult<ServerVersionResponse?>(null)!),
- Homeserver = hs
});
if (updateSw.ElapsedMilliseconds > 25) {
updateSw.Restart();
@@ -214,7 +217,7 @@ Small collection of tools to do not-so-everyday things.
catch (MatrixException e) {
if (e is { ErrorCode: "M_UNKNOWN_TOKEN" }) {
logger.LogWarning("Got unknown token error for {0} via {1}", token.UserId, token.Homeserver);
- _invalidSessions.Add(token);
+ _invalidSessions.Add(session.Value);
}
else {
logger.LogError("Failed to get info for {0} via {1}: {2}", token.UserId, token.Homeserver, e);
@@ -248,9 +251,10 @@ Small collection of tools to do not-so-everyday things.
internal int RoomCount { get; set; }
}
- private async Task RemoveUser(UserAuth auth, bool logout = false) {
+ private async Task RemoveUser(string sessionId, bool logout = false) {
try {
if (logout) {
+ var auth = (await sessionStore.GetSession(sessionId))?.Auth;
await (await HsProvider.GetAuthenticatedWithToken(auth.Homeserver, auth.AccessToken, auth.Proxy)).Logout();
}
}
@@ -263,21 +267,19 @@ Small collection of tools to do not-so-everyday things.
Console.WriteLine(e);
}
- await RmuStorage.RemoveToken(auth);
- if ((await RmuStorage.GetCurrentToken())?.AccessToken == auth.AccessToken)
- await RmuStorage.SetCurrentToken((await RmuStorage.GetAllTokens() ?? throw new InvalidOperationException()).FirstOrDefault());
+ await sessionStore.RemoveSession(sessionId);
StateHasChanged();
}
- private async Task SwitchSession(UserAuth auth) {
- Console.WriteLine($"Switching to {auth.Homeserver} {auth.UserId} via {auth.Proxy}");
- await RmuStorage.SetCurrentToken(auth);
- _currentSession = auth;
+ private async Task SwitchSession(string sessionId) {
+ Console.WriteLine($"Switching to {sessionId}");
+ await sessionStore.SetCurrentSession(sessionId);
+ _currentSession = await sessionStore.GetCurrentSession();
StateHasChanged();
}
- private async Task ManageUser(UserAuth auth) {
- await SwitchSession(auth);
+ private async Task ManageUser(string sessionId) {
+ await sessionStore.SetCurrentSession(sessionId);
NavigationManager.NavigateTo("/User/Profile");
}
}
\ No newline at end of file
diff --git a/MatrixUtils.Web/Pages/InvalidSession.razor b/MatrixUtils.Web/Pages/InvalidSession.razor
index b63c14f..1ec99f6 100644
--- a/MatrixUtils.Web/Pages/InvalidSession.razor
+++ b/MatrixUtils.Web/Pages/InvalidSession.razor
@@ -6,14 +6,15 @@
<h3>Rory&::MatrixUtils - Invalid session encountered</h3>
<p>A session was encountered that is no longer valid. This can happen if you have logged out of the account on another device, or if the access token has expired.</p>
-@if (_login is not null) {
- <p>It appears that the affected user is @_login.UserId (@_login.DeviceId) on @_login.Homeserver!</p>
+@if (_auth is not null) {
+ <p>It appears that the affected user is @_auth.UserId (@_auth.DeviceId) on @_auth.Homeserver!</p>
<LinkButton OnClick="@(OpenRefreshDialog)">Refresh token</LinkButton>
<LinkButton OnClick="@(RemoveUser)">Remove</LinkButton>
@if (_showRefreshDialog) {
- <ModalWindow MinWidth="300" X="275" Y="300" Title="@($"Password for {_login.UserId}")">
- <FancyTextBox IsPassword="true" @bind-Value="@_password"></FancyTextBox><br/>
+ <ModalWindow MinWidth="300" X="275" Y="300" Title="@($"Password for {_auth.UserId}")">
+ <FancyTextBox IsPassword="true" @bind-Value="@_password"></FancyTextBox>
+ <br/>
<LinkButton OnClick="TryLogin">Log in</LinkButton>
@if (_loginException is not null) {
<pre style="color: red;">@_loginException.RawContent</pre>
@@ -29,9 +30,9 @@ else {
{
[Parameter]
[SupplyParameterFromQuery(Name = "ctx")]
- public string Context { get; set; }
+ public string SessionId { get; set; }
- private UserAuth? _login { get; set; }
+ private UserAuth? _auth { get; set; }
private bool _showRefreshDialog { get; set; }
@@ -40,25 +41,21 @@ else {
private MatrixException? _loginException { get; set; }
protected override async Task OnInitializedAsync() {
- var tokens = await RmuStorage.GetAllTokens();
- if (tokens is null || tokens.Count == 0) {
+ var tokens = await sessionStore.GetAllSessions();
+ if (tokens.Count == 0) {
NavigationManager.NavigateTo("/Login");
return;
}
- _login = tokens.FirstOrDefault(x => x.AccessToken == Context);
-
- if (_login is null) {
- Console.WriteLine($"Could not find {_login} in stored tokens!");
- }
+ if (tokens.TryGetValue(SessionId, out var session))
+ _auth = session.Auth;
+ else Console.WriteLine($"Could not find {SessionId} in stored sessions!");
await base.OnInitializedAsync();
}
private async Task RemoveUser() {
- await RmuStorage.RemoveToken(_login!);
- if ((await RmuStorage.GetCurrentToken())!.AccessToken == _login!.AccessToken)
- await RmuStorage.SetCurrentToken((await RmuStorage.GetAllTokens())?.FirstOrDefault());
+ await sessionStore.RemoveSession(SessionId);
await OnInitializedAsync();
}
@@ -68,30 +65,29 @@ else {
await Task.CompletedTask;
}
- private async Task SwitchSession(UserAuth auth) {
- Console.WriteLine($"Switching to {auth.Homeserver} {auth.AccessToken} {auth.UserId}");
- await RmuStorage.SetCurrentToken(auth);
+ private async Task SwitchSession(string sessionId) {
+ Console.WriteLine($"Switching to session {sessionId}");
+ await sessionStore.SetCurrentSession(sessionId);
await OnInitializedAsync();
}
private async Task TryLogin() {
- if(_login is null) throw new NullReferenceException("Login is null!");
+ if (_auth is null) throw new NullReferenceException("Login is null!");
try {
- var result = new UserAuth(await HsProvider.Login(_login.Homeserver, _login.UserId, _password));
+ var result = new UserAuth(await HsProvider.Login(_auth.Homeserver, _auth.UserId, _password));
if (result is null) {
- Console.WriteLine($"Failed to login to {_login.Homeserver} as {_login.UserId}!");
+ Console.WriteLine($"Failed to login to {_auth.Homeserver} as {_auth.UserId}!");
return;
}
+
Console.WriteLine($"Obtained access token for {result.UserId}!");
- await RemoveUser();
- await RmuStorage.AddToken(result);
- if (result.UserId == (await RmuStorage.GetCurrentToken())?.UserId)
- await RmuStorage.SetCurrentToken(result);
+ await sessionStore.RemoveSession(SessionId);
+ await sessionStore.AddSession(result);
NavigationManager.NavigateTo("/");
}
catch (MatrixException e) {
- Console.WriteLine($"Failed to login to {_login.Homeserver} as {_login.UserId}!");
+ Console.WriteLine($"Failed to login to {_auth.Homeserver} as {_auth.UserId}!");
Console.WriteLine(e);
_loginException = e;
StateHasChanged();
diff --git a/MatrixUtils.Web/Pages/Labs/Client/Index.razor b/MatrixUtils.Web/Pages/Labs/Client/Index.razor
index 4656fcb..c6e7d1a 100644
--- a/MatrixUtils.Web/Pages/Labs/Client/Index.razor
+++ b/MatrixUtils.Web/Pages/Labs/Client/Index.razor
@@ -40,11 +40,11 @@
}
protected override async Task OnInitializedAsync() {
- var tokens = await RmuStorage.GetAllTokens();
- var tasks = tokens.Select(async token => {
+ var tokens = await sessionStore.GetAllSessions();
+ var tasks = tokens.Keys.Select(async token => {
try {
var cc = new ClientContext() {
- Homeserver = await RmuStorage.GetSession(token)
+ Homeserver = await sessionStore.GetHomeserver(token)
};
cc.SyncWrapper = new ClientSyncWrapper(cc.Homeserver);
diff --git a/MatrixUtils.Web/Pages/Labs/DMSpace/DMSpace.razor b/MatrixUtils.Web/Pages/Labs/DMSpace/DMSpace.razor
index a382729..f81afe5 100644
--- a/MatrixUtils.Web/Pages/Labs/DMSpace/DMSpace.razor
+++ b/MatrixUtils.Web/Pages/Labs/DMSpace/DMSpace.razor
@@ -52,7 +52,7 @@
NavigationManager.NavigateTo(NavigationManager.Uri.Replace("stage=", ""), true); //"/User/DMSpace/Setup"
}
DMSpaceRootPage = this;
- SetupData.Homeserver ??= await RmuStorage.GetCurrentSessionOrNavigate();
+ SetupData.Homeserver ??= await sessionStore.GetCurrentHomeserver(navigateOnFailure: true);
if (SetupData.Homeserver is null) return;
try {
SetupData.DmSpaceConfiguration = await SetupData.Homeserver.GetAccountDataAsync<DMSpaceConfiguration>("gay.rory.dm_space");
diff --git a/MatrixUtils.Web/Pages/Labs/Rooms2/Index2.razor b/MatrixUtils.Web/Pages/Labs/Rooms2/Index2.razor
index f9da6eb..441752b 100644
--- a/MatrixUtils.Web/Pages/Labs/Rooms2/Index2.razor
+++ b/MatrixUtils.Web/Pages/Labs/Rooms2/Index2.razor
@@ -55,7 +55,7 @@
public RoomListViewData Data { get; set; } = new RoomListViewData();
protected override async Task OnInitializedAsync() {
- Data.Homeserver = await RmuStorage.GetCurrentSessionOrNavigate();
+ Data.Homeserver = await sessionStore.GetCurrentHomeserver(navigateOnFailure: true);
if (Data.Homeserver is null) return;
var rooms = await Data.Homeserver.GetJoinedRooms();
Data.GlobalProfile = await Data.Homeserver.GetProfileAsync(Data.Homeserver.WhoAmI.UserId);
diff --git a/MatrixUtils.Web/Pages/LoginPage.razor b/MatrixUtils.Web/Pages/LoginPage.razor
index bc989c2..88577a2 100644
--- a/MatrixUtils.Web/Pages/LoginPage.razor
+++ b/MatrixUtils.Web/Pages/LoginPage.razor
@@ -68,7 +68,7 @@
</thead>
@foreach (var record in records) {
var r = record;
- <tr style="background-color: @(LoggedInSessions.Any(x => x.UserId == $"@{r.Username}:{r.Homeserver}" && x.Proxy == r.Proxy) ? "green" : "unset")">
+ <tr style="background-color: @(LoggedInSessions.Any(x => x.Value.Auth.UserId == $"@{r.Username}:{r.Homeserver}" && x.Value.Auth.Proxy == r.Proxy) ? "green" : "unset")">
<td style="border-width: 1px;">
<FancyTextBox @bind-Value="@r.Username"></FancyTextBox>
</td>
@@ -108,7 +108,7 @@
readonly List<LoginStruct> records = new();
private LoginStruct newRecordInput = new();
- List<UserAuth>? LoggedInSessions { get; set; } = new();
+ Dictionary<string, RmuSessionStore.SessionInfo> LoggedInSessions { get; set; } = new();
async Task LoginAll() {
var loginTasks = records.Select(Login);
@@ -118,7 +118,7 @@
async Task Login(LoginStruct record) {
if (!records.Contains(record))
records.Add(record);
- if (LoggedInSessions.Any(x => x.UserId == $"@{record.Username}:{record.Homeserver}" && x.Proxy == record.Proxy)) return;
+ if (LoggedInSessions.Any(x => x.Value.Auth.UserId == $"@{record.Username}:{record.Homeserver}" && x.Value.Auth.UserId == record.Proxy)) return;
StateHasChanged();
try {
var result = new UserAuth(await HsProvider.Login(record.Homeserver, record.Username, record.Password, record.Proxy)) {
@@ -131,8 +131,8 @@
Console.WriteLine($"Obtained access token for {result.UserId}!");
- await RmuStorage.AddToken(result);
- LoggedInSessions = await RmuStorage.GetAllTokens();
+ await sessionStore.AddSession(result);
+ LoggedInSessions = await sessionStore.GetAllSessions();
}
catch (Exception e) {
Console.WriteLine($"Failed to login to {record.Homeserver} as {record.Username}!");
@@ -144,7 +144,7 @@
}
private async Task FileChanged(InputFileChangeEventArgs obj) {
- LoggedInSessions = await RmuStorage.GetAllTokens();
+ LoggedInSessions = await sessionStore.GetAllSessions();
Console.WriteLine(JsonSerializer.Serialize(obj, new JsonSerializerOptions {
WriteIndented = true
}));
@@ -162,7 +162,7 @@
}
private async Task AddRecord() {
- LoggedInSessions = await RmuStorage.GetAllTokens();
+ LoggedInSessions = await sessionStore.GetAllSessions();
records.Add(newRecordInput);
newRecordInput = new();
}
@@ -185,13 +185,13 @@
return;
}
- await RmuStorage.AddToken(new UserAuth() {
+ await sessionStore.AddSession(new UserAuth() {
UserId = session.WhoAmI.UserId,
AccessToken = session.AccessToken,
Proxy = record.Proxy,
DeviceId = session.WhoAmI.DeviceId
});
- LoggedInSessions = await RmuStorage.GetAllTokens();
+ LoggedInSessions = await sessionStore.GetAllSessions();
}
catch (Exception e) {
Console.WriteLine($"Failed to login to {record.Homeserver} as {record.Username}!");
diff --git a/MatrixUtils.Web/Pages/Moderation/UserRoomHistory.razor b/MatrixUtils.Web/Pages/Moderation/UserRoomHistory.razor
index 9bb20f0..e30adf6 100644
--- a/MatrixUtils.Web/Pages/Moderation/UserRoomHistory.razor
+++ b/MatrixUtils.Web/Pages/Moderation/UserRoomHistory.razor
@@ -44,11 +44,11 @@ else {
private AuthenticatedHomeserverGeneric? currentHs { get; set; }
protected override async Task OnInitializedAsync() {
- var hs = await RmuStorage.GetCurrentSessionOrNavigate();
+ var hs = await sessionStore.GetCurrentHomeserver(navigateOnFailure: true);
if (hs is null) return;
- var sessions = await RmuStorage.GetAllTokens();
- foreach (var userAuth in sessions) {
- var session = await RmuStorage.GetSession(userAuth);
+ var sessions = await sessionStore.GetAllSessions();
+ foreach (var userAuth in sessions.Keys) {
+ var session = await sessionStore.GetHomeserver(userAuth);
if (session is not null) {
hss.Add(session);
StateHasChanged();
diff --git a/MatrixUtils.Web/Pages/Rooms/Create.razor b/MatrixUtils.Web/Pages/Rooms/Create.razor
index a36ccf8..021ad18 100644
--- a/MatrixUtils.Web/Pages/Rooms/Create.razor
+++ b/MatrixUtils.Web/Pages/Rooms/Create.razor
@@ -258,7 +258,7 @@
private RoomAvatarEventContent? roomAvatarEvent => creationEvent?["m.room.avatar"].TypedContent as RoomAvatarEventContent;
protected override async Task OnInitializedAsync() {
- Homeserver = await RmuStorage.GetCurrentSessionOrNavigate();
+ Homeserver = await sessionStore.GetCurrentHomeserver(navigateOnFailure: true);
if (Homeserver is null) return;
foreach (var x in Assembly.GetExecutingAssembly().GetTypes().Where(x => x.IsClass && !x.IsAbstract && x.GetInterfaces().Contains(typeof(IRoomCreationTemplate))).ToList()) {
diff --git a/MatrixUtils.Web/Pages/Rooms/Index.razor b/MatrixUtils.Web/Pages/Rooms/Index.razor
index 45219c7..0373a46 100644
--- a/MatrixUtils.Web/Pages/Rooms/Index.razor
+++ b/MatrixUtils.Web/Pages/Rooms/Index.razor
@@ -66,7 +66,7 @@
// SyncHelper profileSyncHelper;
protected override async Task OnInitializedAsync() {
- Homeserver = await RmuStorage.GetCurrentSessionOrNavigate();
+ Homeserver = await sessionStore.GetCurrentHomeserver(navigateOnFailure: true);
if (Homeserver is null) return;
// var rooms = await Homeserver.GetJoinedRooms();
// SemaphoreSlim _semaphore = new(160, 160);
diff --git a/MatrixUtils.Web/Pages/Rooms/PolicyList.razor b/MatrixUtils.Web/Pages/Rooms/PolicyList.razor
index 3d78f4a..9c35673 100644
--- a/MatrixUtils.Web/Pages/Rooms/PolicyList.razor
+++ b/MatrixUtils.Web/Pages/Rooms/PolicyList.razor
@@ -216,7 +216,7 @@ else {
protected override async Task OnInitializedAsync() {
var sw = Stopwatch.StartNew();
await base.OnInitializedAsync();
- Homeserver = (await RmuStorage.GetCurrentSessionOrNavigate())!;
+ Homeserver = (await sessionStore.GetCurrentHomeserver(navigateOnFailure: true))!;
if (Homeserver is null) return;
Room = Homeserver.GetRoom(RoomId!);
await Task.WhenAll([
diff --git a/MatrixUtils.Web/Pages/Rooms/PolicyList2.razor b/MatrixUtils.Web/Pages/Rooms/PolicyList2.razor
index 664551a..982fc5a 100644
--- a/MatrixUtils.Web/Pages/Rooms/PolicyList2.razor
+++ b/MatrixUtils.Web/Pages/Rooms/PolicyList2.razor
@@ -173,7 +173,7 @@ else {
protected override async Task OnInitializedAsync() {
var sw = Stopwatch.StartNew();
await base.OnInitializedAsync();
- Homeserver = (await RmuStorage.GetCurrentSessionOrNavigate())!;
+ Homeserver = (await sessionStore.GetCurrentHomeserver(navigateOnFailure: true))!;
if (Homeserver is null) return;
Room = Homeserver.GetRoom(RoomId!);
PowerLevels = (await Room.GetPowerLevelsAsync())!;
diff --git a/MatrixUtils.Web/Pages/Rooms/PolicyLists.razor b/MatrixUtils.Web/Pages/Rooms/PolicyLists.razor
index 4f06822..2903ab8 100644
--- a/MatrixUtils.Web/Pages/Rooms/PolicyLists.razor
+++ b/MatrixUtils.Web/Pages/Rooms/PolicyLists.razor
@@ -62,7 +62,7 @@
private AuthenticatedHomeserverGeneric? Homeserver { get; set; }
protected override async Task OnInitializedAsync() {
- Homeserver = await RmuStorage.GetCurrentSessionOrNavigate();
+ Homeserver = await sessionStore.GetCurrentHomeserver(navigateOnFailure: true);
if (Homeserver is null) return;
Status = "Fetching rooms...";
diff --git a/MatrixUtils.Web/Pages/Rooms/Space.razor b/MatrixUtils.Web/Pages/Rooms/Space.razor
index e3bb4e4..46e39ed 100644
--- a/MatrixUtils.Web/Pages/Rooms/Space.razor
+++ b/MatrixUtils.Web/Pages/Rooms/Space.razor
@@ -36,7 +36,7 @@
private string? NewRoomId { get; set; }
protected override async Task OnInitializedAsync() {
- var hs = await RmuStorage.GetCurrentSessionOrNavigate();
+ var hs = await sessionStore.GetCurrentHomeserver(navigateOnFailure: true);
if (hs is null) return;
Room = hs.GetRoom(RoomId.Replace('~', '.'));
diff --git a/MatrixUtils.Web/Pages/Rooms/StateEditor.razor b/MatrixUtils.Web/Pages/Rooms/StateEditor.razor
index 4d24d47..51cb265 100644
--- a/MatrixUtils.Web/Pages/Rooms/StateEditor.razor
+++ b/MatrixUtils.Web/Pages/Rooms/StateEditor.razor
@@ -43,7 +43,7 @@
protected override async Task OnInitializedAsync() {
await base.OnInitializedAsync();
- var hs = await RmuStorage.GetCurrentSessionOrNavigate();
+ var hs = await sessionStore.GetCurrentHomeserver(navigateOnFailure: true);
if (hs is null) return;
RoomId = RoomId.Replace('~', '.');
await LoadStatesAsync();
@@ -53,7 +53,7 @@
private DateTime _lastUpdate = DateTime.Now;
private async Task LoadStatesAsync() {
- var hs = await RmuStorage.GetCurrentSessionOrNavigate();
+ var hs = await sessionStore.GetCurrentHomeserver(navigateOnFailure: true);
var StateLoaded = 0;
var response = (hs.GetRoom(RoomId)).GetFullStateAsync();
diff --git a/MatrixUtils.Web/Pages/Rooms/StateViewer.razor b/MatrixUtils.Web/Pages/Rooms/StateViewer.razor
index 565d97f..c8b87d3 100644
--- a/MatrixUtils.Web/Pages/Rooms/StateViewer.razor
+++ b/MatrixUtils.Web/Pages/Rooms/StateViewer.razor
@@ -70,7 +70,7 @@
protected override async Task OnInitializedAsync() {
await base.OnInitializedAsync();
- var hs = await RmuStorage.GetCurrentSessionOrNavigate();
+ var hs = await sessionStore.GetCurrentHomeserver(navigateOnFailure: true);
if (hs is null) return;
await LoadStatesAsync();
Console.WriteLine("Policy list editor initialized!");
@@ -80,7 +80,7 @@
private async Task LoadStatesAsync() {
var StateLoaded = 0;
- var hs = await RmuStorage.GetCurrentSessionOrNavigate();
+ var hs = await sessionStore.GetCurrentHomeserver(navigateOnFailure: true);
if (hs is null) return;
var response = (hs.GetRoom(RoomId)).GetFullStateAsync();
await foreach (var _ev in response) {
diff --git a/MatrixUtils.Web/Pages/Rooms/Timeline.razor b/MatrixUtils.Web/Pages/Rooms/Timeline.razor
index a064956..108581c 100644
--- a/MatrixUtils.Web/Pages/Rooms/Timeline.razor
+++ b/MatrixUtils.Web/Pages/Rooms/Timeline.razor
@@ -27,7 +27,7 @@
protected override async Task OnInitializedAsync() {
Console.WriteLine("RoomId: " + RoomId);
- Homeserver = await RmuStorage.GetCurrentSessionOrNavigate();
+ Homeserver = await sessionStore.GetCurrentHomeserver(navigateOnFailure: true);
if (Homeserver is null) return;
var room = Homeserver.GetRoom(RoomId);
MessagesResponse? msgs = null;
diff --git a/MatrixUtils.Web/Pages/StreamTest.razor b/MatrixUtils.Web/Pages/StreamTest.razor
index aae1f17..8b9735e 100644
--- a/MatrixUtils.Web/Pages/StreamTest.razor
+++ b/MatrixUtils.Web/Pages/StreamTest.razor
@@ -35,7 +35,7 @@
public List<Stream> Streams { get; set; } = new();
protected override async Task OnInitializedAsync() {
- Homeserver = await RmuStorage.GetCurrentSessionOrNavigate();
+ Homeserver = await sessionStore.GetCurrentHomeserver(navigateOnFailure: true);
//await InitOld();
await Init2();
diff --git a/MatrixUtils.Web/Pages/Tools/Debug/LeaveRoom.razor b/MatrixUtils.Web/Pages/Tools/Debug/LeaveRoom.razor
index 8782dbe..9a56fc0 100644
--- a/MatrixUtils.Web/Pages/Tools/Debug/LeaveRoom.razor
+++ b/MatrixUtils.Web/Pages/Tools/Debug/LeaveRoom.razor
@@ -17,7 +17,7 @@
public string? RoomId { get; set; }
protected override async Task OnInitializedAsync() {
- hs = await RmuStorage.GetCurrentSessionOrNavigate();
+ hs = await sessionStore.GetCurrentHomeserver(navigateOnFailure: true);
if (hs is null) return;
Log.CollectionChanged += (sender, args) => StateHasChanged();
diff --git a/MatrixUtils.Web/Pages/Tools/Debug/MigrateRoom.razor b/MatrixUtils.Web/Pages/Tools/Debug/MigrateRoom.razor
index f21bac2..0943216 100644
--- a/MatrixUtils.Web/Pages/Tools/Debug/MigrateRoom.razor
+++ b/MatrixUtils.Web/Pages/Tools/Debug/MigrateRoom.razor
@@ -39,7 +39,7 @@
private string newRoomId { get; set; }
protected override async Task OnInitializedAsync() {
- var hs = await RmuStorage.GetCurrentSessionOrNavigate();
+ var hs = await sessionStore.GetCurrentHomeserver(navigateOnFailure: true);
if (hs is null) return;
StateHasChanged();
@@ -48,7 +48,7 @@
}
private async Task Execute() {
- var hs = await RmuStorage.GetCurrentSessionOrNavigate();
+ var hs = await sessionStore.GetCurrentHomeserver(navigateOnFailure: true);
if (hs is null) return;
var oldRoom = hs.GetRoom(roomId);
var newRoom = hs.GetRoom(newRoomId);
@@ -90,7 +90,7 @@
private async Task TryFetchUsers() {
try {
- var hs = await RmuStorage.GetCurrentSessionOrNavigate();
+ var hs = await sessionStore.GetCurrentHomeserver(navigateOnFailure: true);
if (hs is null) return;
var room = hs.GetRoom(roomId);
var members = await room.GetMembersListAsync();
diff --git a/MatrixUtils.Web/Pages/Tools/Debug/SpaceDebug.razor b/MatrixUtils.Web/Pages/Tools/Debug/SpaceDebug.razor
index 70ae27d..7abb3d2 100644
--- a/MatrixUtils.Web/Pages/Tools/Debug/SpaceDebug.razor
+++ b/MatrixUtils.Web/Pages/Tools/Debug/SpaceDebug.razor
@@ -45,7 +45,7 @@
protected override async Task OnInitializedAsync() {
Status = "Getting homeserver...";
- var hs = await RmuStorage.GetCurrentSessionOrNavigate();
+ var hs = await sessionStore.GetCurrentHomeserver(navigateOnFailure: true);
if (hs is null) return;
var syncHelper = new SyncHelper(hs) {
diff --git a/MatrixUtils.Web/Pages/Tools/Info/KnownHomeserverList.razor b/MatrixUtils.Web/Pages/Tools/Info/KnownHomeserverList.razor
index 296852a..acad827 100644
--- a/MatrixUtils.Web/Pages/Tools/Info/KnownHomeserverList.razor
+++ b/MatrixUtils.Web/Pages/Tools/Info/KnownHomeserverList.razor
@@ -36,7 +36,7 @@
int RoomCount { get; set; } = 0;
protected override async Task OnInitializedAsync() {
- hs = await RmuStorage.GetCurrentSessionOrNavigate();
+ hs = await sessionStore.GetCurrentHomeserver(navigateOnFailure: true);
if (hs is null) return;
var ss = new SemaphoreSlim(32, 32);
var rooms = await hs.GetJoinedRooms();
diff --git a/MatrixUtils.Web/Pages/Tools/Info/PolicyListActivity.razor b/MatrixUtils.Web/Pages/Tools/Info/PolicyListActivity.razor
index 4506c39..f8d1d31 100644
--- a/MatrixUtils.Web/Pages/Tools/Info/PolicyListActivity.razor
+++ b/MatrixUtils.Web/Pages/Tools/Info/PolicyListActivity.razor
@@ -38,7 +38,7 @@ else
protected override async Task OnInitializedAsync() {
var sw = Stopwatch.StartNew();
await base.OnInitializedAsync();
- Homeserver = (await RmuStorage.GetCurrentSessionOrNavigate())!;
+ Homeserver = (await sessionStore.GetCurrentHomeserver(navigateOnFailure: true))!;
if (Homeserver is null) return;
var rooms = await Homeserver.GetJoinedRooms();
diff --git a/MatrixUtils.Web/Pages/Tools/Info/SessionCount.razor b/MatrixUtils.Web/Pages/Tools/Info/SessionCount.razor
index 1adb440..ce3513b 100644
--- a/MatrixUtils.Web/Pages/Tools/Info/SessionCount.razor
+++ b/MatrixUtils.Web/Pages/Tools/Info/SessionCount.razor
@@ -73,20 +73,20 @@
protected override async Task OnInitializedAsync() {
log.CollectionChanged += (sender, args) => StateHasChanged();
- var hs = await RmuStorage.GetCurrentSessionOrNavigate();
+ var hs = await sessionStore.GetCurrentHomeserver(navigateOnFailure: true);
if (hs is null) return;
rooms.CollectionChanged += (sender, args) => StateHasChanged();
- var sessions = await RmuStorage.GetAllTokens();
+ var sessions = await sessionStore.GetAllSessions();
foreach (var userAuth in sessions) {
- var session = await RmuStorage.GetSession(userAuth);
- if (session is not null) {
- var sessionRooms = await session.GetJoinedRooms();
+ var homeserver = await sessionStore.GetHomeserver(userAuth.Key);
+ if (homeserver is not null) {
+ var sessionRooms = await homeserver.GetJoinedRooms();
foreach (var room in sessionRooms) {
rooms.Add(room);
}
StateHasChanged();
- log.Add($"Got {sessionRooms.Count} rooms for {userAuth.UserId}");
+ log.Add($"Got {sessionRooms.Count} rooms for {userAuth.Value.Auth.UserId}");
}
}
@@ -106,7 +106,7 @@
log.Add($"Done fetching members!");
- UserIDs.RemoveAll(x => sessions.Any(y => y.UserId == x));
+ UserIDs.RemoveAll(x => sessions.Any(y => y.Value.Auth.UserId == x));
StateHasChanged();
Console.WriteLine("Rerendered!");
diff --git a/MatrixUtils.Web/Pages/Tools/InviteCounter.razor b/MatrixUtils.Web/Pages/Tools/InviteCounter.razor
index fa94f18..2313884 100644
--- a/MatrixUtils.Web/Pages/Tools/InviteCounter.razor
+++ b/MatrixUtils.Web/Pages/Tools/InviteCounter.razor
@@ -35,7 +35,7 @@
protected override async Task OnInitializedAsync() {
log.CollectionChanged += (sender, args) => StateHasChanged();
- hs = await RmuStorage.GetCurrentSessionOrNavigate();
+ hs = await sessionStore.GetCurrentHomeserver(navigateOnFailure: true);
if (hs is null) return;
StateHasChanged();
diff --git a/MatrixUtils.Web/Pages/Tools/MassCMEBan.razor b/MatrixUtils.Web/Pages/Tools/MassCMEBan.razor
index 547c586..a252e6b 100644
--- a/MatrixUtils.Web/Pages/Tools/MassCMEBan.razor
+++ b/MatrixUtils.Web/Pages/Tools/MassCMEBan.razor
@@ -27,7 +27,7 @@
protected override async Task OnInitializedAsync() {
log.CollectionChanged += (sender, args) => StateHasChanged();
- hs = await RmuStorage.GetCurrentSessionOrNavigate();
+ hs = await sessionStore.GetCurrentHomeserver(navigateOnFailure: true);
if (hs is null) return;
StateHasChanged();
diff --git a/MatrixUtils.Web/Pages/Tools/Moderation/Draupnir/DraupnirProtectedRoomsEditor.razor b/MatrixUtils.Web/Pages/Tools/Moderation/Draupnir/DraupnirProtectedRoomsEditor.razor
index 953a1e6..b0d5a65 100644
--- a/MatrixUtils.Web/Pages/Tools/Moderation/Draupnir/DraupnirProtectedRoomsEditor.razor
+++ b/MatrixUtils.Web/Pages/Tools/Moderation/Draupnir/DraupnirProtectedRoomsEditor.razor
@@ -62,7 +62,7 @@
private AuthenticatedHomeserverGeneric hs { get; set; }
protected override async Task OnInitializedAsync() {
- hs = await RmuStorage.GetCurrentSessionOrNavigate();
+ hs = await sessionStore.GetCurrentHomeserver(navigateOnFailure: true);
if (hs is null) return;
data = await hs.GetAccountDataAsync<DraupnirProtectedRoomsData>(DraupnirProtectedRoomsData.EventId);
StateHasChanged();
diff --git a/MatrixUtils.Web/Pages/Tools/Moderation/Draupnir/DraupnirProtectionsEditor.razor b/MatrixUtils.Web/Pages/Tools/Moderation/Draupnir/DraupnirProtectionsEditor.razor
index b4a9d35..ea39c9a 100644
--- a/MatrixUtils.Web/Pages/Tools/Moderation/Draupnir/DraupnirProtectionsEditor.razor
+++ b/MatrixUtils.Web/Pages/Tools/Moderation/Draupnir/DraupnirProtectionsEditor.razor
@@ -58,7 +58,7 @@
private AuthenticatedHomeserverGeneric hs { get; set; }
protected override async Task OnInitializedAsync() {
- hs = await RmuStorage.GetCurrentSessionOrNavigate();
+ hs = await sessionStore.GetCurrentHomeserver(navigateOnFailure: true);
if (hs is null) return;
data = await hs.GetAccountDataAsync<DraupnirProtectedRoomsData>("org.matrix.mjolnir.protected_rooms");
StateHasChanged();
diff --git a/MatrixUtils.Web/Pages/Tools/Moderation/Draupnir/DraupnirWatchedListsEditor.razor b/MatrixUtils.Web/Pages/Tools/Moderation/Draupnir/DraupnirWatchedListsEditor.razor
index 1384a2a..9e70687 100644
--- a/MatrixUtils.Web/Pages/Tools/Moderation/Draupnir/DraupnirWatchedListsEditor.razor
+++ b/MatrixUtils.Web/Pages/Tools/Moderation/Draupnir/DraupnirWatchedListsEditor.razor
@@ -58,7 +58,7 @@
private AuthenticatedHomeserverGeneric hs { get; set; }
protected override async Task OnInitializedAsync() {
- hs = await RmuStorage.GetCurrentSessionOrNavigate();
+ hs = await sessionStore.GetCurrentHomeserver(navigateOnFailure: true);
if (hs is null) return;
data = await hs.GetAccountDataAsync<DraupnirProtectedRoomsData>("org.matrix.mjolnir.protected_rooms");
StateHasChanged();
diff --git a/MatrixUtils.Web/Pages/Tools/Moderation/FindUsersByRegex.razor b/MatrixUtils.Web/Pages/Tools/Moderation/FindUsersByRegex.razor
index 4b2af68..b62cf57 100644
--- a/MatrixUtils.Web/Pages/Tools/Moderation/FindUsersByRegex.razor
+++ b/MatrixUtils.Web/Pages/Tools/Moderation/FindUsersByRegex.razor
@@ -63,7 +63,7 @@
protected override async Task OnInitializedAsync() {
log.CollectionChanged += (sender, args) => StateHasChanged();
log.Add("Authenticating");
- hs = await RmuStorage.GetCurrentSessionOrNavigate();
+ hs = await sessionStore.GetCurrentHomeserver(navigateOnFailure: true);
if (hs is null) return;
StateHasChanged();
diff --git a/MatrixUtils.Web/Pages/Tools/Moderation/InviteCounter.razor b/MatrixUtils.Web/Pages/Tools/Moderation/InviteCounter.razor
index cb1328c..5c5946f 100644
--- a/MatrixUtils.Web/Pages/Tools/Moderation/InviteCounter.razor
+++ b/MatrixUtils.Web/Pages/Tools/Moderation/InviteCounter.razor
@@ -35,7 +35,7 @@
protected override async Task OnInitializedAsync() {
log.CollectionChanged += (sender, args) => StateHasChanged();
- hs = await RmuStorage.GetCurrentSessionOrNavigate();
+ hs = await sessionStore.GetCurrentHomeserver(navigateOnFailure: true);
if (hs is null) return;
StateHasChanged();
diff --git a/MatrixUtils.Web/Pages/Tools/Moderation/MassCMEBan.razor b/MatrixUtils.Web/Pages/Tools/Moderation/MassCMEBan.razor
index b5e5edb..8fdad84 100644
--- a/MatrixUtils.Web/Pages/Tools/Moderation/MassCMEBan.razor
+++ b/MatrixUtils.Web/Pages/Tools/Moderation/MassCMEBan.razor
@@ -28,7 +28,7 @@
protected override async Task OnInitializedAsync() {
log.CollectionChanged += (sender, args) => StateHasChanged();
- hs = await RmuStorage.GetCurrentSessionOrNavigate();
+ hs = await sessionStore.GetCurrentHomeserver(navigateOnFailure: true);
if (hs is null) return;
StateHasChanged();
diff --git a/MatrixUtils.Web/Pages/Tools/Moderation/MembershipHistory.razor b/MatrixUtils.Web/Pages/Tools/Moderation/MembershipHistory.razor
index d9503ee..1ec3cd0 100644
--- a/MatrixUtils.Web/Pages/Tools/Moderation/MembershipHistory.razor
+++ b/MatrixUtils.Web/Pages/Tools/Moderation/MembershipHistory.razor
@@ -407,7 +407,7 @@
protected override async Task OnInitializedAsync() {
Log.CollectionChanged += (sender, args) => StateHasChanged();
- Homeserver = await RmuStorage.GetCurrentSessionOrNavigate();
+ Homeserver = await sessionStore.GetCurrentHomeserver(navigateOnFailure: true);
if (Homeserver is null) return;
StateHasChanged();
diff --git a/MatrixUtils.Web/Pages/Tools/Moderation/RoomIntersections.razor b/MatrixUtils.Web/Pages/Tools/Moderation/RoomIntersections.razor
index 15eea15..736e59a 100644
--- a/MatrixUtils.Web/Pages/Tools/Moderation/RoomIntersections.razor
+++ b/MatrixUtils.Web/Pages/Tools/Moderation/RoomIntersections.razor
@@ -113,7 +113,7 @@
protected override async Task OnInitializedAsync() {
Log.CollectionChanged += (sender, args) => StateHasChanged();
- hs = await RmuStorage.GetCurrentSessionOrNavigate();
+ hs = await sessionStore.GetCurrentHomeserver(navigateOnFailure: true);
if (hs is null) return;
StateHasChanged();
diff --git a/MatrixUtils.Web/Pages/Tools/Moderation/UserTrace.razor b/MatrixUtils.Web/Pages/Tools/Moderation/UserTrace.razor
index 73818c6..c3cc09c 100644
--- a/MatrixUtils.Web/Pages/Tools/Moderation/UserTrace.razor
+++ b/MatrixUtils.Web/Pages/Tools/Moderation/UserTrace.razor
@@ -66,19 +66,19 @@
protected override async Task OnInitializedAsync() {
log.CollectionChanged += (sender, args) => StateHasChanged();
- var hs = await RmuStorage.GetCurrentSessionOrNavigate();
+ var hs = await sessionStore.GetCurrentHomeserver(navigateOnFailure: true);
if (hs is null) return;
- var sessions = await RmuStorage.GetAllTokens();
+ var sessions = await sessionStore.GetAllSessions();
var tasks = sessions.Select(async session => {
try {
- var _hs = await RmuStorage.GetSession(session);
+ var _hs = await sessionStore.GetHomeserver(session.Key);
if (_hs is not null) {
try {
var _rooms = await _hs.GetJoinedRooms();
if (!_rooms.Any()) return;
// Check if homeserver supports `?format=event`:
- await _rooms.First().GetStateEventAsync(RoomMemberEventContent.EventId, session.UserId);
+ await _rooms.First().GetStateEventAsync(RoomMemberEventContent.EventId, session.Value.Auth.UserId);
rooms.AddRange(_rooms);
log.Add($"Got {_rooms.Count} rooms for {_hs.UserId}, total {rooms.Count}");
}
@@ -90,7 +90,7 @@
}
}
catch (Exception e) {
- log.Add($"Failed to fetch rooms for {session.UserId}! {e}");
+ log.Add($"Failed to fetch rooms for {session.Value.Auth.UserId}! {e}");
}
});
await Task.WhenAll(tasks);
diff --git a/MatrixUtils.Web/Pages/Tools/Room/SpaceRestrictedJoins.razor b/MatrixUtils.Web/Pages/Tools/Room/SpaceRestrictedJoins.razor
index b57810a..ac3c651 100644
--- a/MatrixUtils.Web/Pages/Tools/Room/SpaceRestrictedJoins.razor
+++ b/MatrixUtils.Web/Pages/Tools/Room/SpaceRestrictedJoins.razor
@@ -31,7 +31,7 @@
protected override async Task OnInitializedAsync() {
log.CollectionChanged += (sender, args) => StateHasChanged();
- hs = await RmuStorage.GetCurrentSessionOrNavigate();
+ hs = await sessionStore.GetCurrentHomeserver(navigateOnFailure: true);
if (hs is null) return;
StateHasChanged();
diff --git a/MatrixUtils.Web/Pages/Tools/User/CopyPowerlevel.razor b/MatrixUtils.Web/Pages/Tools/User/CopyPowerlevel.razor
index 64dbfcf..e5ffd5b 100644
--- a/MatrixUtils.Web/Pages/Tools/User/CopyPowerlevel.razor
+++ b/MatrixUtils.Web/Pages/Tools/User/CopyPowerlevel.razor
@@ -23,11 +23,11 @@
List<AuthenticatedHomeserverGeneric> hss { get; set; } = new();
protected override async Task OnInitializedAsync() {
- var hs = await RmuStorage.GetCurrentSessionOrNavigate();
+ var hs = await sessionStore.GetCurrentHomeserver(navigateOnFailure: true);
if (hs is null) return;
- var sessions = await RmuStorage.GetAllTokens();
- foreach (var userAuth in sessions) {
- var session = await RmuStorage.GetSession(userAuth);
+ var sessions = await sessionStore.GetAllSessions();
+ foreach (var userAuth in sessions.Keys) {
+ var session = await sessionStore.GetHomeserver(userAuth);
if (session is not null) {
hss.Add(session);
StateHasChanged();
diff --git a/MatrixUtils.Web/Pages/Tools/User/MassJoinRoom.razor b/MatrixUtils.Web/Pages/Tools/User/MassJoinRoom.razor
index e352c91..c373a37 100644
--- a/MatrixUtils.Web/Pages/Tools/User/MassJoinRoom.razor
+++ b/MatrixUtils.Web/Pages/Tools/User/MassJoinRoom.razor
@@ -25,11 +25,11 @@
string roomId { get; set; }
protected override async Task OnInitializedAsync() {
- var hs = await RmuStorage.GetCurrentSessionOrNavigate();
+ var hs = await sessionStore.GetCurrentHomeserver(navigateOnFailure: true);
if (hs is null) return;
- var sessions = await RmuStorage.GetAllTokens();
- foreach (var userAuth in sessions) {
- var session = await RmuStorage.GetSession(userAuth);
+ var sessions = await sessionStore.GetAllSessions();
+ foreach (var userAuth in sessions.Keys) {
+ var session = await sessionStore.GetHomeserver(userAuth);
if (session is not null) {
hss.Add(session);
StateHasChanged();
diff --git a/MatrixUtils.Web/Pages/Tools/User/ViewAccountData.razor b/MatrixUtils.Web/Pages/Tools/User/ViewAccountData.razor
index b73b5ac..a393d2e 100644
--- a/MatrixUtils.Web/Pages/Tools/User/ViewAccountData.razor
+++ b/MatrixUtils.Web/Pages/Tools/User/ViewAccountData.razor
@@ -16,7 +16,7 @@
Dictionary<string, EventList?> perRoomAccountData = new();
protected override async Task OnInitializedAsync() {
- var hs = await RmuStorage.GetCurrentSessionOrNavigate();
+ var hs = await sessionStore.GetCurrentHomeserver(navigateOnFailure: true);
if (hs is null) return;
perRoomAccountData = await hs.EnumerateAccountDataPerRoom();
globalAccountData = await hs.EnumerateAccountData();
diff --git a/MatrixUtils.Web/Pages/User/DMManager.razor b/MatrixUtils.Web/Pages/User/DMManager.razor
index fe45eb8..4b8b7c2 100644
--- a/MatrixUtils.Web/Pages/User/DMManager.razor
+++ b/MatrixUtils.Web/Pages/User/DMManager.razor
@@ -29,7 +29,7 @@
}
protected override async Task OnInitializedAsync() {
- Homeserver = await RmuStorage.GetCurrentSessionOrNavigate();
+ Homeserver = await sessionStore.GetCurrentHomeserver(navigateOnFailure: true);
if (Homeserver is null) return;
Status = "Loading global profile...";
if (Homeserver.WhoAmI?.UserId is null) return;
diff --git a/MatrixUtils.Web/Pages/User/Profile.razor b/MatrixUtils.Web/Pages/User/Profile.razor
index b6ac1d4..ccd3e7b 100644
--- a/MatrixUtils.Web/Pages/User/Profile.razor
+++ b/MatrixUtils.Web/Pages/User/Profile.razor
@@ -80,7 +80,7 @@
private Dictionary<string, string> RoomNames { get; set; } = new();
protected override async Task OnInitializedAsync() {
- Homeserver = await RmuStorage.GetCurrentSessionOrNavigate();
+ Homeserver = await sessionStore.GetCurrentHomeserver(navigateOnFailure: true);
if (Homeserver is null) return;
Status = "Loading global profile...";
if (Homeserver.WhoAmI?.UserId is null) return;
|