using System; using System.IO; using System.Linq; using System.Threading; using xAiModels.Models; using System.Threading.Tasks; using xAiApi.Interfaces.Extractors; namespace xAiApi.Providers.Extractors { /// /// Extracts content from plain text files (txt, md, csv, json, xml) ... /// public class XPlainTextFileContentExtractor : IXPlainTextFileContentExtractor { /// /// Supported MIME Types ... /// private static readonly string[] SupportedMimeTypes = [ "text/plain", "text/markdown", "text/csv", "text/html", "text/xml", "application/json", "application/xml" ]; /// /// Check if this extractor supports the specified MIME type ... /// public bool CanExtract(string mimeType) { // return SupportedMimeTypes.Contains( mimeType?.ToLowerInvariant() ?? string.Empty ); } /// /// Extract text content from file stream ... /// public async Task ExtractAsync( Stream fileStream, string mimeType, CancellationToken cancellationToken = default ) { // using var reader = new StreamReader(fileStream); return await reader.ReadToEndAsync(); } /// /// Extract content from stream as Rich Result ... /// /// /// /// /// /// public async Task ExtractRichAsync( Stream fileStream, string fileName, string mimeType, CancellationToken cancellationToken = default ) { // var content = await ExtractAsync( mimeType: mimeType, fileStream: fileStream, cancellationToken: cancellationToken ); // var result = new XFileExtractionResult { Text = content, FileName = fileName, MimeType = mimeType }; // return result; } } }