about summary refs log tree commit diff
path: root/MatrixRoomUtils.Web/Classes/RoomInfo.cs
diff options
context:
space:
mode:
Diffstat (limited to 'MatrixRoomUtils.Web/Classes/RoomInfo.cs')
-rw-r--r--MatrixRoomUtils.Web/Classes/RoomInfo.cs99
1 files changed, 0 insertions, 99 deletions
diff --git a/MatrixRoomUtils.Web/Classes/RoomInfo.cs b/MatrixRoomUtils.Web/Classes/RoomInfo.cs
deleted file mode 100644
index 9d0cd59..0000000
--- a/MatrixRoomUtils.Web/Classes/RoomInfo.cs
+++ /dev/null
@@ -1,99 +0,0 @@
-using System.Collections.ObjectModel;
-using System.Text.Json.Nodes;
-using ArcaneLibs;
-using LibMatrix;
-using LibMatrix.EventTypes.Spec.State;
-using LibMatrix.EventTypes.Spec.State.RoomInfo;
-using LibMatrix.Interfaces;
-using LibMatrix.RoomTypes;
-
-namespace MatrixRoomUtils.Web.Classes;
-
-public class RoomInfo : NotifyPropertyChanged {
-    public required GenericRoom Room { get; set; }
-    public ObservableCollection<StateEventResponse?> StateEvents { get; } = new();
-
-    public async Task<StateEventResponse?> GetStateEvent(string type, string stateKey = "") {
-        var @event = StateEvents.FirstOrDefault(x => x.Type == type && x.StateKey == stateKey);
-        if (@event is not null) return @event;
-        @event = new StateEventResponse {
-            RoomId = Room.RoomId,
-            Type = type,
-            StateKey = stateKey,
-            Sender = null, //TODO implement
-            EventId = null
-        };
-        // if (Room is null) return null;
-        try {
-            @event.RawContent = await Room.GetStateAsync<JsonObject>(type, stateKey);
-        }
-        catch (MatrixException e) {
-            if (e is { ErrorCode: "M_NOT_FOUND" }) {
-                if (type == "m.room.name")
-                    @event = new() {
-                        Type = type,
-                        StateKey = stateKey,
-                        TypedContent = new RoomNameEventContent() {
-                            Name = await Room.GetNameOrFallbackAsync()
-                        },
-                        //TODO implement
-                        RoomId = null,
-                        Sender = null,
-                        EventId = null
-                    };
-                else
-                    @event.RawContent = default!;
-            }
-            else throw;
-        }
-
-        StateEvents.Add(@event);
-        return @event;
-    }
-
-    public string? RoomIcon {
-        get => _roomIcon ?? "https://api.dicebear.com/6.x/identicon/svg?seed=" + Room.RoomId;
-        set => SetField(ref _roomIcon, value);
-    }
-
-    public string? RoomName {
-        get => _roomName ?? DefaultRoomName ?? Room.RoomId;
-        set => SetField(ref _roomName, value);
-    }
-
-    public RoomCreateEventContent? CreationEventContent {
-        get => _creationEventContent;
-        set => SetField(ref _creationEventContent, value);
-    }
-
-    public string? RoomCreator {
-        get => _roomCreator;
-        set => SetField(ref _roomCreator, value);
-    }
-
-    // public string? GetRoomIcon() => (StateEvents.FirstOrDefault(x => x?.Type == RoomAvatarEventContent.EventId)?.TypedContent as RoomAvatarEventContent)?.Url ??
-    // "mxc://rory.gay/dgP0YPjJEWaBwzhnbyLLwGGv";
-
-    private string? _roomIcon;
-    private string? _roomName;
-    private RoomCreateEventContent? _creationEventContent;
-    private string? _roomCreator;
-
-    public string? DefaultRoomName { get; set; }
-
-    public RoomInfo() {
-        StateEvents.CollectionChanged += (_, args) => {
-            if (args.NewItems is { Count: > 0 })
-                foreach (StateEventResponse newState in args.NewItems) {
-                    if (newState.GetType == typeof(RoomNameEventContent) && newState.TypedContent is RoomNameEventContent roomNameContent)
-                        RoomName = roomNameContent.Name;
-                    else if (newState.GetType == typeof(RoomAvatarEventContent) && newState.TypedContent is RoomAvatarEventContent roomAvatarContent)
-                        RoomIcon = roomAvatarContent.Url;
-                    else if (newState.GetType == typeof(RoomCreateEventContent) && newState.TypedContent is RoomCreateEventContent roomCreateContent) {
-                        CreationEventContent = roomCreateContent;
-                        RoomCreator = newState.Sender;
-                    }
-                }
-        };
-    }
-}