using System.Collections.Generic; using System.IO; using System.Threading; using System.Threading.Tasks; using Jellyfin.Plugin.Jellypod.Api.Models; using Jellyfin.Plugin.Jellypod.Models; namespace Jellyfin.Plugin.Jellypod.Services; /// /// Service for handling OPML import and export. /// public interface IOpmlService { /// /// Parses OPML content and extracts podcast outlines. /// /// The OPML XML content. /// List of parsed outlines. IReadOnlyList ParseOpml(string opmlContent); /// /// Parses OPML from a stream. /// /// The input stream containing OPML XML. /// List of parsed outlines. IReadOnlyList ParseOpml(Stream stream); /// /// Imports podcasts from parsed OPML outlines. /// /// The parsed OPML outlines. /// Cancellation token. /// Import result with statistics. Task ImportPodcastsAsync( IReadOnlyList outlines, CancellationToken cancellationToken = default); /// /// Exports all subscribed podcasts to OPML format. /// /// OPML XML string. Task ExportToOpmlAsync(); }