Files
UmlautAdaptarr/UmlautAdaptarr/Models/AggregatedSearchResult.cs
2024-02-12 01:57:41 +01:00

41 lines
1.2 KiB
C#

using System.Text;
using System.Xml.Linq;
namespace UmlautAdaptarr.Models
{
public class AggregatedSearchResult
{
public XDocument ContentDocument { get; private set; }
public string ContentType { get; set; }
public Encoding ContentEncoding { get; set; }
private readonly HashSet<string> _uniqueItems;
public AggregatedSearchResult(string contentType, Encoding contentEncoding)
{
ContentType = contentType;
ContentEncoding = contentEncoding;
_uniqueItems = [];
// Initialize ContentDocument with a basic RSS structure
ContentDocument = new XDocument(new XElement("rss", new XElement("channel")));
}
public string Content => ContentDocument.ToString();
public void AggregateItems(string content)
{
var xDoc = XDocument.Parse(content);
var items = xDoc.Descendants("item");
foreach (var item in items)
{
var itemAsString = item.ToString();
if (_uniqueItems.Add(itemAsString))
{
ContentDocument.Root.Element("channel").Add(item);
}
}
}
}
}