diff --git a/LibMatrix/Homeservers/ImplementationDetails/Synapse/SynapseAdminApiClient.cs b/LibMatrix/Homeservers/ImplementationDetails/Synapse/SynapseAdminApiClient.cs
index a48402a..daa4468 100644
--- a/LibMatrix/Homeservers/ImplementationDetails/Synapse/SynapseAdminApiClient.cs
+++ b/LibMatrix/Homeservers/ImplementationDetails/Synapse/SynapseAdminApiClient.cs
@@ -144,7 +144,7 @@ public class SynapseAdminApiClient(AuthenticatedHomeserverSynapse authenticatedH
#endif
continue;
}
-
+
if (room.JoinedMembers < localFilter.JoinedMembersGreaterThan || room.JoinedMembers > localFilter.JoinedMembersLessThan) {
totalRooms--;
#if LOG_SKIP
@@ -212,6 +212,15 @@ public class SynapseAdminApiClient(AuthenticatedHomeserverSynapse authenticatedH
return loginResp;
}
+ public async Task<AuthenticatedHomeserverSynapse> GetHomeserverForUserAsync(string userId, TimeSpan expireAfter) {
+ var loginResp = await LoginUserAsync(userId, expireAfter);
+ var homeserver = new AuthenticatedHomeserverSynapse(
+ authenticatedHomeserver.ServerName, authenticatedHomeserver.WellKnownUris, authenticatedHomeserver.Proxy, loginResp.AccessToken
+ );
+ await homeserver.Initialise();
+ return homeserver;
+ }
+
#endregion
#region Reports
@@ -517,6 +526,10 @@ public class SynapseAdminApiClient(AuthenticatedHomeserverSynapse authenticatedH
return await authenticatedHomeserver.ClientHttpClient.GetFromJsonAsync<SynapseAdminRoomMemberListResult>($"/_synapse/admin/v1/rooms/{roomId}/members");
}
+ public async Task<SynapseAdminRoomStateResult> GetRoomStateAsync(string roomId, string? type = null) {
+ return await authenticatedHomeserver.ClientHttpClient.GetFromJsonAsync<SynapseAdminRoomStateResult>($"/_synapse/admin/v1/rooms/{roomId}/state");
+ }
+
public async Task QuarantineMediaByRoomId(string roomId) {
await authenticatedHomeserver.ClientHttpClient.PutAsJsonAsync($"/_synapse/admin/v1/room/{roomId}/media/quarantine", new { });
}
@@ -524,11 +537,11 @@ public class SynapseAdminApiClient(AuthenticatedHomeserverSynapse authenticatedH
public async Task QuarantineMediaByUserId(string mxid) {
await authenticatedHomeserver.ClientHttpClient.PutAsJsonAsync($"/_synapse/admin/v1/user/{mxid}/media/quarantine", new { });
}
-
+
public async Task QuarantineMediaById(string serverName, string mediaId) {
await authenticatedHomeserver.ClientHttpClient.PutAsJsonAsync($"/_synapse/admin/v1/media/quarantine/{serverName}/{mediaId}", new { });
}
-
+
public async Task QuarantineMediaById(MxcUri mxcUri) {
await authenticatedHomeserver.ClientHttpClient.PutAsJsonAsync($"/_synapse/admin/v1/media/quarantine/{mxcUri.ServerName}/{mxcUri.MediaId}", new { });
}
@@ -536,7 +549,7 @@ public class SynapseAdminApiClient(AuthenticatedHomeserverSynapse authenticatedH
public async Task DeleteMediaById(string serverName, string mediaId) {
await authenticatedHomeserver.ClientHttpClient.DeleteAsync($"/_synapse/admin/v1/media/{serverName}/{mediaId}");
}
-
+
public async Task DeleteMediaById(MxcUri mxcUri) {
await authenticatedHomeserver.ClientHttpClient.DeleteAsync($"/_synapse/admin/v1/media/{mxcUri.ServerName}/{mxcUri.MediaId}");
}
|