about summary refs log tree commit diff
path: root/LibMatrix/Responses
diff options
context:
space:
mode:
authorTheArcaneBrony <myrainbowdash949@gmail.com>2023-09-04 06:29:00 +0200
committerTheArcaneBrony <myrainbowdash949@gmail.com>2023-09-04 06:29:00 +0200
commit9dcce18cda5317ea1150eed06d6589b6285577e6 (patch)
tree1b36a9ddffa312e58daab075c43fb482c2bae905 /LibMatrix/Responses
parentToo many changes to name... (diff)
downloadLibMatrix-bak-9dcce18cda5317ea1150eed06d6589b6285577e6.tar.xz
Add start of Media Moderator PoC bot
Diffstat (limited to 'LibMatrix/Responses')
-rw-r--r--LibMatrix/Responses/CreateRoomRequest.cs50
1 files changed, 49 insertions, 1 deletions
diff --git a/LibMatrix/Responses/CreateRoomRequest.cs b/LibMatrix/Responses/CreateRoomRequest.cs

index c1c1697..2c05088 100644 --- a/LibMatrix/Responses/CreateRoomRequest.cs +++ b/LibMatrix/Responses/CreateRoomRequest.cs
@@ -7,6 +7,7 @@ using System.Text.Json.Serialization; using System.Text.RegularExpressions; using LibMatrix.Extensions; using LibMatrix.Helpers; +using LibMatrix.Homeservers; using LibMatrix.StateEventTypes.Spec; namespace LibMatrix.Responses; @@ -29,6 +30,9 @@ public class CreateRoomRequest { [JsonPropertyName("initial_state")] public List<StateEvent> InitialState { get; set; } = null!; + /// <summary> + /// One of: ["public", "private"] + /// </summary> [JsonPropertyName("visibility")] public string Visibility { get; set; } = null!; @@ -38,6 +42,9 @@ public class CreateRoomRequest { [JsonPropertyName("creation_content")] public JsonObject CreationContent { get; set; } = new(); + [JsonPropertyName("invite")] + public List<string> Invite { get; set; } + /// <summary> /// For use only when you can't use the CreationContent property /// </summary> @@ -53,9 +60,10 @@ public class CreateRoomRequest { StateEvent.KnownStateEventTypes.FirstOrDefault(x => x.GetCustomAttributes<MatrixEventAttribute>()? .Any(y => y.EventName == event_type) ?? false) ?? typeof(object) - ) + ) }); } + return stateEvent; } set { @@ -75,4 +83,44 @@ public class CreateRoomRequest { return errors; } + + public static CreateRoomRequest CreatePrivate(AuthenticatedHomeserverGeneric hs, string? name = null, string? roomAliasName = null) { + var request = new CreateRoomRequest() { + Name = name ?? "Private Room", + Visibility = "private", + CreationContent = new(), + PowerLevelContentOverride = new() { + EventsDefault = 0, + UsersDefault = 0, + Kick = 50, + Ban = 50, + Invite = 25, + StateDefault = 10, + Redact = 50, + NotificationsPl = new() { + Room = 10 + }, + Events = new() { + { "m.room.avatar", 50 }, + { "m.room.canonical_alias", 50 }, + { "m.room.encryption", 100 }, + { "m.room.history_visibility", 100 }, + { "m.room.name", 50 }, + { "m.room.power_levels", 100 }, + { "m.room.server_acl", 100 }, + { "m.room.tombstone", 100 } + }, + Users = new() { + { + hs.UserId, + 101 + } + } + }, + RoomAliasName = roomAliasName, + InitialState = new() + }; + + return request; + } }