about summary refs log tree commit diff
path: root/LibMatrix/MxcUri.cs
diff options
context:
space:
mode:
Diffstat (limited to 'LibMatrix/MxcUri.cs')
-rw-r--r--LibMatrix/MxcUri.cs10
1 files changed, 5 insertions, 5 deletions
diff --git a/LibMatrix/MxcUri.cs b/LibMatrix/MxcUri.cs

index 02a8fa6..875ae53 100644 --- a/LibMatrix/MxcUri.cs +++ b/LibMatrix/MxcUri.cs
@@ -3,9 +3,9 @@ using System.Diagnostics.CodeAnalysis; namespace LibMatrix; public class MxcUri { - public required string ServerName; - public required string MediaId; - + public required string ServerName { get; set; } + public required string MediaId { get; set; } + public static MxcUri Parse([StringSyntax("Uri")] string mxcUri) { if (!mxcUri.StartsWith("mxc://")) throw new ArgumentException("Matrix Content URIs must start with 'mxc://'", nameof(mxcUri)); var parts = mxcUri[6..].Split('/'); @@ -15,13 +15,13 @@ public class MxcUri { MediaId = parts[1] }; } - + public static implicit operator MxcUri(string mxcUri) => Parse(mxcUri); public static implicit operator string(MxcUri mxcUri) => $"mxc://{mxcUri.ServerName}/{mxcUri.MediaId}"; public static implicit operator (string, string)(MxcUri mxcUri) => (mxcUri.ServerName, mxcUri.MediaId); public static implicit operator MxcUri((string serverName, string mediaId) mxcUri) => (mxcUri.serverName, mxcUri.mediaId); // public override string ToString() => $"mxc://{ServerName}/{MediaId}"; - + public string ToDownloadUri(string? baseUrl = null, string? filename = null, int? timeout = null) { var uri = $"{baseUrl}/_matrix/client/v1/media/download/{ServerName}/{MediaId}"; if (filename is not null) uri += $"/{filename}";