using System; using System.Collections.Generic; namespace NzbDrone.Core.Indexers { public interface IIndexerBase { string Name { get; } bool EnabledByDefault { get; } IEnumerable RecentFeed { get; } IParseFeed Parser { get; } IIndexerSetting Settings { get; } IEnumerable GetEpisodeSearchUrls(string seriesTitle, int seasonNumber, int episodeNumber); IEnumerable GetDailyEpisodeSearchUrls(string seriesTitle, DateTime date); IEnumerable GetSeasonSearchUrls(string seriesTitle, int seasonNumber); IEnumerable GetPartialSeasonSearchUrls(string seriesTitle, int seasonNumber, int episodeWildcard); } public abstract class BaseIndexer : IIndexerBase { public abstract string Name { get; } public virtual bool EnabledByDefault { get { return false; } } public virtual IParseFeed Parser { get { return new BasicRssParser(); } } public virtual IIndexerSetting Settings { get { return new NullSetting(); } } public abstract IEnumerable RecentFeed { get; } public abstract IEnumerable GetEpisodeSearchUrls(string seriesTitle, int seasonNumber, int episodeNumber); public abstract IEnumerable GetDailyEpisodeSearchUrls(string seriesTitle, DateTime date); public abstract IEnumerable GetSeasonSearchUrls(string seriesTitle, int seasonNumber); public abstract IEnumerable GetPartialSeasonSearchUrls(string seriesTitle, int seasonNumber, int episodeWildcard); } }