diff options
Diffstat (limited to 'Tests/LibMatrix.HomeserverEmulator/Services/MediaStore.cs')
-rw-r--r-- | Tests/LibMatrix.HomeserverEmulator/Services/MediaStore.cs | 64 |
1 files changed, 0 insertions, 64 deletions
diff --git a/Tests/LibMatrix.HomeserverEmulator/Services/MediaStore.cs b/Tests/LibMatrix.HomeserverEmulator/Services/MediaStore.cs deleted file mode 100644 index 00f2a42..0000000 --- a/Tests/LibMatrix.HomeserverEmulator/Services/MediaStore.cs +++ /dev/null @@ -1,64 +0,0 @@ -using System.Text.Json; -using LibMatrix.Services; - -namespace LibMatrix.HomeserverEmulator.Services; - -public class MediaStore { - private readonly HSEConfiguration _config; - private readonly HomeserverResolverService _hsResolver; - private List<MediaInfo> index = new(); - - public MediaStore(HSEConfiguration config, HomeserverResolverService hsResolver) { - _config = config; - _hsResolver = hsResolver; - if (config.StoreData) { - var path = Path.Combine(config.DataStoragePath, "media"); - if (!Directory.Exists(path)) Directory.CreateDirectory(path); - if (File.Exists(Path.Combine(path, "index.json"))) - index = JsonSerializer.Deserialize<List<MediaInfo>>(File.ReadAllText(Path.Combine(path, "index.json"))); - } - else - Console.WriteLine("Data storage is disabled, not loading rooms from disk"); - } - - // public async Task<object> UploadMedia(string userId, string mimeType, Stream stream, string? filename = null) { - // var mediaId = $"mxc://{Guid.NewGuid().ToString()}"; - // var path = Path.Combine(_config.DataStoragePath, "media", mediaId); - // if (!Directory.Exists(path)) Directory.CreateDirectory(path); - // var file = Path.Combine(path, filename ?? "file"); - // await using var fs = File.Create(file); - // await stream.CopyToAsync(fs); - // index.Add(new() { }); - // return media; - // } - - public async Task<Stream> GetRemoteMedia(string serverName, string mediaId) { - if (_config.StoreData) { - var path = Path.Combine(_config.DataStoragePath, "media", serverName, mediaId); - if (!File.Exists(path)) { - var mediaUrl = await _hsResolver.ResolveMediaUri(serverName, $"mxc://{serverName}/{mediaId}"); - if (mediaUrl is null) - throw new MatrixException() { - ErrorCode = "M_NOT_FOUND", - Error = "Media not found" - }; - using var client = new HttpClient(); - var stream = await client.GetStreamAsync(mediaUrl); - await using var fs = File.Create(path); - await stream.CopyToAsync(fs); - } - return new FileStream(path, FileMode.Open); - } - else { - var mediaUrl = await _hsResolver.ResolveMediaUri(serverName, $"mxc://{serverName}/{mediaId}"); - if (mediaUrl is null) - throw new MatrixException() { - ErrorCode = "M_NOT_FOUND", - Error = "Media not found" - }; - using var client = new HttpClient(); - return await client.GetStreamAsync(mediaUrl); - } - } - public class MediaInfo { } -} \ No newline at end of file |