diff --git a/LibMatrix/Homeservers/AuthenticatedHomeserverGeneric.cs b/LibMatrix/Homeservers/AuthenticatedHomeserverGeneric.cs
index e85ecd2..cf85287 100644
--- a/LibMatrix/Homeservers/AuthenticatedHomeserverGeneric.cs
+++ b/LibMatrix/Homeservers/AuthenticatedHomeserverGeneric.cs
@@ -1,3 +1,4 @@
+using System.Diagnostics.CodeAnalysis;
using System.Net.Http.Headers;
using System.Net.Http.Json;
using System.Text.Json;
@@ -50,9 +51,9 @@ public class AuthenticatedHomeserverGeneric(string serverName, string accessToke
}
public WhoAmIResponse WhoAmI { get; set; }
- public string? UserId => WhoAmI?.UserId;
- public string? UserLocalpart => UserId?.Split(":")[0][1..];
- public string? ServerName => UserId?.Split(":", 2)[1];
+ public string UserId => WhoAmI.UserId;
+ public string UserLocalpart => UserId.Split(":")[0][1..];
+ public string ServerName => UserId.Split(":", 2)[1];
// public virtual async Task<WhoAmIResponse> WhoAmI() {
// if (_whoAmI is not null) return _whoAmI;
@@ -289,10 +290,10 @@ public class AuthenticatedHomeserverGeneric(string serverName, string accessToke
}
public async Task<RoomIdResponse> JoinRoomAsync(string roomId, List<string> homeservers = null, string? reason = null) {
- var join_url = $"/_matrix/client/v3/join/{HttpUtility.UrlEncode(roomId)}";
- Console.WriteLine($"Calling {join_url} with {homeservers?.Count ?? 0} via's...");
+ var joinUrl = $"/_matrix/client/v3/join/{HttpUtility.UrlEncode(roomId)}";
+ Console.WriteLine($"Calling {joinUrl} with {homeservers?.Count ?? 0} via's...");
if (homeservers == null || homeservers.Count == 0) homeservers = new() { roomId.Split(':')[1] };
- var fullJoinUrl = $"{join_url}?server_name=" + string.Join("&server_name=", homeservers);
+ var fullJoinUrl = $"{joinUrl}?server_name=" + string.Join("&server_name=", homeservers);
var res = await ClientHttpClient.PostAsJsonAsync(fullJoinUrl, new {
reason
});
diff --git a/LibMatrix/Homeservers/AuthenticatedHomeserverSynapse.cs b/LibMatrix/Homeservers/AuthenticatedHomeserverSynapse.cs
index 28ff775..6562686 100644
--- a/LibMatrix/Homeservers/AuthenticatedHomeserverSynapse.cs
+++ b/LibMatrix/Homeservers/AuthenticatedHomeserverSynapse.cs
@@ -20,7 +20,7 @@ public class AuthenticatedHomeserverSynapse : AuthenticatedHomeserverGeneric {
Console.WriteLine($"--- ADMIN Querying Room List with URL: {url} - Already have {i} items... ---");
res = await authenticatedHomeserver.ClientHttpClient.GetFromJsonAsync<AdminRoomListingResult>(url);
- totalRooms ??= res?.TotalRooms;
+ totalRooms ??= res.TotalRooms;
Console.WriteLine(res.ToJson(false));
foreach (var room in res.Rooms) {
if (localFilter is not null) {
diff --git a/LibMatrix/Homeservers/RemoteHomeServer.cs b/LibMatrix/Homeservers/RemoteHomeServer.cs
index f8d61fd..a47b731 100644
--- a/LibMatrix/Homeservers/RemoteHomeServer.cs
+++ b/LibMatrix/Homeservers/RemoteHomeServer.cs
@@ -2,7 +2,6 @@ using System.Net.Http.Json;
using System.Text.Json;
using System.Text.Json.Serialization;
using ArcaneLibs.Extensions;
-using LibMatrix.EventTypes.Spec.State;
using LibMatrix.Extensions;
using LibMatrix.Responses;
using LibMatrix.Services;
@@ -10,6 +9,7 @@ using LibMatrix.Services;
namespace LibMatrix.Homeservers;
public class RemoteHomeserver(string baseUrl) {
+
public static async Task<RemoteHomeserver> Create(string baseUrl, string? proxy = null) {
var homeserver = new RemoteHomeserver(baseUrl);
homeserver.WellKnownUris = await new HomeserverResolverService().ResolveHomeserverFromWellKnown(baseUrl);
@@ -32,9 +32,10 @@ public class RemoteHomeserver(string baseUrl) {
private Dictionary<string, object> _profileCache { get; set; } = new();
public string BaseUrl { get; } = baseUrl;
- public MatrixHttpClient ClientHttpClient { get; set; }
- public MatrixHttpClient ServerHttpClient { get; set; }
- public HomeserverResolverService.WellKnownUris WellKnownUris { get; set; }
+
+ public MatrixHttpClient ClientHttpClient { get; set; } = null!;
+ public MatrixHttpClient ServerHttpClient { get; set; } = null!;
+ public HomeserverResolverService.WellKnownUris WellKnownUris { get; set; } = null!;
public async Task<UserProfileResponse> GetProfileAsync(string mxid) {
if (mxid is null) throw new ArgumentNullException(nameof(mxid));
@@ -63,7 +64,7 @@ public class RemoteHomeserver(string baseUrl) {
public async Task<AliasResult> ResolveRoomAliasAsync(string alias) {
var resp = await ClientHttpClient.GetAsync($"/_matrix/client/v3/directory/room/{alias.Replace("#", "%23")}");
var data = await resp.Content.ReadFromJsonAsync<AliasResult>();
- var text = await resp.Content.ReadAsStringAsync();
+ //var text = await resp.Content.ReadAsStringAsync();
if (!resp.IsSuccessStatusCode) Console.WriteLine("ResolveAlias: " + data.ToJson());
return data;
}
@@ -119,8 +120,9 @@ public class RemoteHomeserver(string baseUrl) {
public class ServerVersionResponse {
[JsonPropertyName("server")]
- public ServerInfo Server { get; set; }
+ public required ServerInfo Server { get; set; }
+ // ReSharper disable once ClassNeverInstantiated.Global
public class ServerInfo {
[JsonPropertyName("name")]
public string Name { get; set; }
|