using System;
using NLog;
using NzbDrone.Common;
using NzbDrone.Core.Configuration;
using NzbDrone.Core.MediaFiles;
using NzbDrone.Core.Tv;
using NzbDrone.Core.Model;
using NzbDrone.Core.Providers.Core;
using NzbDrone.Core.Repository;
using TvdbLib.Data;
namespace NzbDrone.Core.Providers.Metadata
{
public abstract class MetadataBase
{
protected readonly Logger _logger;
protected readonly IConfigService _configService;
protected readonly DiskProvider _diskProvider;
protected readonly BannerProvider _bannerProvider;
protected readonly IEpisodeService _episodeService;
protected MetadataBase(IConfigService configService, DiskProvider diskProvider,
BannerProvider bannerProvider, IEpisodeService episodeService)
{
_configService = configService;
_diskProvider = diskProvider;
_bannerProvider = bannerProvider;
_episodeService = episodeService;
_logger = LogManager.GetLogger(GetType().ToString());
}
///
/// Gets the name for the metabase provider
///
public abstract string Name { get; }
///
/// Creates metadata for a series
///
/// The series to create the metadata for
/// Series information from TheTvDb
public abstract void CreateForSeries(Series series, TvdbSeries tvDbSeries);
///
/// Creates metadata for the episode file
///
/// The episode file to create the metadata
/// Series information from TheTvDb
public abstract void CreateForEpisodeFile(EpisodeFile episodeFile, TvdbSeries tvDbSeries);
///
/// Removes metadata for a series
///
/// The series to create the metadata for
public abstract void RemoveForSeries(Series series);
///
/// Removes metadata for the episode file
///
/// The episode file to create the metadata
public abstract void RemoveForEpisodeFile(EpisodeFile episodeFile);
public virtual string GetEpisodeGuideUrl(int seriesId)
{
return String.Format("http://www.thetvdb.com/api/{0}/series/{1}/all/en.zip", TvDbProvider.TVDB_APIKEY, seriesId);
}
}
}