Further room cleanup work
2 files changed, 64 insertions, 0 deletions
diff --git a/MatrixUtils.RoomUpgradeCLI/Commands/DevCommands/DevDeleteRoomCommand.cs b/MatrixUtils.RoomUpgradeCLI/Commands/DevCommands/DevDeleteRoomCommand.cs
new file mode 100644
index 0000000..10d667f
--- /dev/null
+++ b/MatrixUtils.RoomUpgradeCLI/Commands/DevCommands/DevDeleteRoomCommand.cs
@@ -0,0 +1,33 @@
+using LibMatrix.Homeservers;
+
+namespace MatrixUtils.RoomUpgradeCLI.Commands;
+
+public class DevDeleteRoomCommand(ILogger<DevDeleteRoomCommand> logger, IHost host, RuntimeContext ctx, AuthenticatedHomeserverGeneric hs) : IHostedService {
+ public async Task StartAsync(CancellationToken cancellationToken) {
+ var synapse = hs as AuthenticatedHomeserverSynapse;
+ if (ctx.Args.Length == 2) {
+ var room = synapse.GetRoom(ctx.Args[1]);
+ await synapse.Admin.DeleteRoom(room.RoomId, new() { Purge = true });
+ }
+ else {
+ string line;
+ do {
+ line = Console.ReadLine();
+ if (string.IsNullOrWhiteSpace(line)) continue;
+ var room = synapse.GetRoom(line);
+ await synapse.Admin.DeleteRoom(room.RoomId, new() { Purge = true });
+ } while (line is not null);
+ }
+
+ await host.StopAsync(cancellationToken);
+ }
+
+ public async Task StopAsync(CancellationToken cancellationToken) { }
+
+ private async Task PrintHelp() {
+ Console.WriteLine("Usage: execute [filename]");
+ Console.WriteLine("Options:");
+ Console.WriteLine(" --help Show this help message");
+ await host.StopAsync();
+ }
+}
\ No newline at end of file
diff --git a/MatrixUtils.RoomUpgradeCLI/Commands/DevCommands/DevGetRoomDirStateCommand.cs b/MatrixUtils.RoomUpgradeCLI/Commands/DevCommands/DevGetRoomDirStateCommand.cs
new file mode 100644
index 0000000..7ff7b6a
--- /dev/null
+++ b/MatrixUtils.RoomUpgradeCLI/Commands/DevCommands/DevGetRoomDirStateCommand.cs
@@ -0,0 +1,31 @@
+using System.Web;
+using LibMatrix.Homeservers;
+
+namespace MatrixUtils.RoomUpgradeCLI.Commands;
+
+public class DevGetRoomDirStateCommand(ILogger<DevGetRoomDirStateCommand> logger, IHost host, RuntimeContext ctx, AuthenticatedHomeserverGeneric hs) : IHostedService {
+ public async Task StartAsync(CancellationToken cancellationToken) {
+ var synapse = hs as AuthenticatedHomeserverSynapse;
+ if (ctx.Args.Length == 2) {
+ var res = await hs.ClientHttpClient.GetAsync(" /_matrix/client/v3/directory/list/room/" + HttpUtility.UrlEncode(ctx.Args[1]));
+ if (res.IsSuccessStatusCode) {
+ var data = await res.Content.ReadAsStringAsync();
+ Console.WriteLine("Room Directory State for " + ctx.Args[1] + ":");
+ Console.WriteLine(data);
+ } else {
+ Console.WriteLine("Failed to get room directory state for " + ctx.Args[1] + ": " + res.ReasonPhrase);
+ }
+ }
+
+ await host.StopAsync(cancellationToken);
+ }
+
+ public async Task StopAsync(CancellationToken cancellationToken) { }
+
+ private async Task PrintHelp() {
+ Console.WriteLine("Usage: execute [filename]");
+ Console.WriteLine("Options:");
+ Console.WriteLine(" --help Show this help message");
+ await host.StopAsync();
+ }
+}
\ No newline at end of file
|