mirror of
https://codeberg.org/ashley/poke
synced 2025-04-06 09:38:00 +00:00
68 lines
1.9 KiB
C#
68 lines
1.9 KiB
C#
using System.Xml;
|
|
|
|
namespace InnerTube.Models
|
|
{
|
|
public class YoutubePlaylist
|
|
{
|
|
public string Id;
|
|
public string Title;
|
|
public string Description;
|
|
public string VideoCount;
|
|
public string ViewCount;
|
|
public string LastUpdated;
|
|
public Thumbnail[] Thumbnail;
|
|
public Channel Channel;
|
|
public DynamicItem[] Videos;
|
|
public string ContinuationKey;
|
|
|
|
public string GetHtmlDescription() => Utils.GetHtmlDescription(Description);
|
|
|
|
public XmlDocument GetXmlDocument()
|
|
{
|
|
XmlDocument doc = new();
|
|
XmlElement playlist = doc.CreateElement("Playlist");
|
|
playlist.SetAttribute("id", Id);
|
|
playlist.SetAttribute("continuation", ContinuationKey);
|
|
|
|
XmlElement metadata = doc.CreateElement("Metadata");
|
|
|
|
XmlElement title = doc.CreateElement("Title");
|
|
title.InnerText = Title;
|
|
metadata.AppendChild(title);
|
|
|
|
metadata.AppendChild(Channel.GetXmlElement(doc));
|
|
|
|
XmlElement thumbnails = doc.CreateElement("Thumbnails");
|
|
foreach (Thumbnail t in Thumbnail)
|
|
{
|
|
XmlElement thumbnail = doc.CreateElement("Thumbnail");
|
|
thumbnail.SetAttribute("width", t.Width.ToString());
|
|
thumbnail.SetAttribute("height", t.Height.ToString());
|
|
thumbnail.InnerText = t.Url;
|
|
thumbnails.AppendChild(thumbnail);
|
|
}
|
|
metadata.AppendChild(thumbnails);
|
|
|
|
XmlElement videoCount = doc.CreateElement("VideoCount");
|
|
XmlElement viewCount = doc.CreateElement("ViewCount");
|
|
XmlElement lastUpdated = doc.CreateElement("LastUpdated");
|
|
|
|
videoCount.InnerText = VideoCount;
|
|
viewCount.InnerText = ViewCount;
|
|
lastUpdated.InnerText = LastUpdated;
|
|
|
|
metadata.AppendChild(videoCount);
|
|
metadata.AppendChild(viewCount);
|
|
metadata.AppendChild(lastUpdated);
|
|
|
|
playlist.AppendChild(metadata);
|
|
|
|
XmlElement results = doc.CreateElement("Videos");
|
|
foreach (DynamicItem result in Videos) results.AppendChild(result.GetXmlElement(doc));
|
|
playlist.AppendChild(results);
|
|
|
|
doc.AppendChild(playlist);
|
|
return doc;
|
|
}
|
|
}
|
|
} |