about summary refs log tree commit diff
path: root/LibMatrix
diff options
context:
space:
mode:
authorRory& <root@rory.gay>2024-03-17 13:30:38 +0100
committerRory& <root@rory.gay>2024-03-17 13:30:38 +0100
commit677fe757733ab4af327ba74d047195be7d578e60 (patch)
treee4502c0ce8e021e0533f84706568669b36bbe0da /LibMatrix
parentAdd AddCollapsiblePart to MessageBuilder (diff)
downloadLibMatrix-bak-677fe757733ab4af327ba74d047195be7d578e60.tar.xz
Bot related fixes, image size
Diffstat (limited to 'LibMatrix')
-rw-r--r--LibMatrix/Homeservers/AuthenticatedHomeserverGeneric.cs13
1 files changed, 11 insertions, 2 deletions
diff --git a/LibMatrix/Homeservers/AuthenticatedHomeserverGeneric.cs b/LibMatrix/Homeservers/AuthenticatedHomeserverGeneric.cs

index b4c1cc9..4f3bb41 100644 --- a/LibMatrix/Homeservers/AuthenticatedHomeserverGeneric.cs +++ b/LibMatrix/Homeservers/AuthenticatedHomeserverGeneric.cs
@@ -76,6 +76,15 @@ public class AuthenticatedHomeserverGeneric(string serverName, string accessToke return rooms; } + public virtual async Task<string> UploadFile(string fileName, IEnumerable<byte> data, string contentType = "application/octet-stream") { + return await UploadFile(fileName, data.ToArray(), contentType); + } + + public virtual async Task<string> UploadFile(string fileName, byte[] data, string contentType = "application/octet-stream") { + await using var ms = new MemoryStream(data); + return await UploadFile(fileName, ms, contentType); + } + public virtual async Task<string> UploadFile(string fileName, Stream fileStream, string contentType = "application/octet-stream") { var req = new HttpRequestMessage(HttpMethod.Post, $"/_matrix/media/v3/upload?filename={fileName}"); req.Content = new StreamContent(fileStream); @@ -320,13 +329,13 @@ public class AuthenticatedHomeserverGeneric(string serverName, string accessToke filter.Room?.Timeline?.Senders, filter.Room?.Timeline?.NotSenders ]; - + foreach (var list in senderLists) if (list is { Count: > 0 } && list.Contains("@me")) { list.Remove("@me"); list.Add(UserId); } - + var resp = await ClientHttpClient.PostAsJsonAsync("/_matrix/client/v3/user/" + UserId + "/filter", filter); return await resp.Content.ReadFromJsonAsync<FilterIdResponse>() ?? throw new Exception("Failed to upload filter?"); }