From 2abb132234546e61bb0aff3897dc49e72ea84f5d Mon Sep 17 00:00:00 2001 From: TheArcaneBrony Date: Sun, 5 Nov 2023 17:59:38 +0100 Subject: Working sync proxy --- .../Controllers/Client/ClientVersionsController.cs | 52 ++++++++++++++++++++++ 1 file changed, 52 insertions(+) create mode 100644 MxApiExtensions/Controllers/Client/ClientVersionsController.cs (limited to 'MxApiExtensions/Controllers/Client/ClientVersionsController.cs') diff --git a/MxApiExtensions/Controllers/Client/ClientVersionsController.cs b/MxApiExtensions/Controllers/Client/ClientVersionsController.cs new file mode 100644 index 0000000..d29e3b2 --- /dev/null +++ b/MxApiExtensions/Controllers/Client/ClientVersionsController.cs @@ -0,0 +1,52 @@ +using System.Net.Http.Headers; +using LibMatrix.Responses; +using Microsoft.AspNetCore.Mvc; +using MxApiExtensions.Services; + +namespace MxApiExtensions.Controllers; + +[ApiController] +[Route("/")] +public class ClientVersionsController : ControllerBase { + private readonly ILogger _logger; + private readonly AuthenticatedHomeserverProviderService _authenticatedHomeserverProviderService; + private static Dictionary _tokenMap = new(); + + public ClientVersionsController(ILogger logger, MxApiExtensionsConfiguration config, AuthenticationService authenticationService, AuthenticatedHomeserverProviderService authenticatedHomeserverProviderService) { + _logger = logger; + _authenticatedHomeserverProviderService = authenticatedHomeserverProviderService; + } + + [HttpGet("/_matrix/client/versions")] + public async Task Proxy([FromQuery] string? access_token, string? _) { + var clientVersions = new ClientVersionsResponse { + Versions = new() { + "r0.0.1", + "r0.1.0", + "r0.2.0", + "r0.3.0", + "r0.4.0", + "r0.5.0", + "r0.6.0", + "r0.6.1", + "v1.1", + "v1.2", + "v1.3", + "v1.4", + "v1.5", + "v1.6" + }, + UnstableFeatures = new() + }; + try { + var hs = await _authenticatedHomeserverProviderService.GetHomeserver(); + clientVersions = await hs.GetClientVersionsAsync(); + + _logger.LogInformation("Fetching client versions for {}: {}{}", hs.WhoAmI.UserId, Request.Path, Request.QueryString); + } + catch { } + + clientVersions.UnstableFeatures.Add("gay.rory.mxapiextensions.v0", true); + return clientVersions; + } +} -- cgit 1.5.1