mirror of
https://github.com/Readarr/Readarr.git
synced 2026-04-18 21:34:28 -04:00
Tests added
Series metadata will be created when series info is refreshed (and on add)
This commit is contained in:
@@ -2,7 +2,7 @@
|
||||
using System.Collections.Generic;
|
||||
using System.Text;
|
||||
|
||||
namespace NzbDrone.Core.Model.Metadata
|
||||
namespace NzbDrone.Core.Model
|
||||
{
|
||||
public class MisnamedEpisodeModel
|
||||
{
|
||||
|
||||
@@ -239,6 +239,7 @@
|
||||
<Compile Include="Datastore\Migrations\Migration20110726.cs" />
|
||||
<Compile Include="Datastore\Migrations\Migration20110707.cs" />
|
||||
<Compile Include="Datastore\DbProviderFactory.cs" />
|
||||
<Compile Include="Datastore\Migrations\Migration20120707.cs" />
|
||||
<Compile Include="Datastore\Migrations\NzbDroneMigration.cs" />
|
||||
<Compile Include="Datastore\Migrations\SchemaInfo.cs" />
|
||||
<Compile Include="Datastore\PetaPoco\EpisodeSeasonRelator.cs" />
|
||||
@@ -284,6 +285,9 @@
|
||||
<Compile Include="Providers\Indexer\NzbIndex.cs" />
|
||||
<Compile Include="Providers\Indexer\FileSharingTalk.cs" />
|
||||
<Compile Include="Providers\Indexer\Wombles.cs" />
|
||||
<Compile Include="Providers\MetadataProvider.cs" />
|
||||
<Compile Include="Providers\Metadata\MetadataBase.cs" />
|
||||
<Compile Include="Providers\Metadata\Xbmc.cs" />
|
||||
<Compile Include="Providers\SearchHistoryProvider.cs" />
|
||||
<Compile Include="Providers\SeasonProvider.cs" />
|
||||
<Compile Include="Jobs\RecentBacklogSearchJob.cs" />
|
||||
@@ -313,6 +317,7 @@
|
||||
<SubType>Code</SubType>
|
||||
</Compile>
|
||||
<Compile Include="Providers\StatsProvider.cs" />
|
||||
<Compile Include="Repository\MetadataDefinition.cs" />
|
||||
<Compile Include="Repository\Search\SearchHistoryItem.cs" />
|
||||
<Compile Include="Repository\Search\SearchHistory.cs" />
|
||||
<Compile Include="Model\ReportRejectionType.cs" />
|
||||
|
||||
@@ -0,0 +1,19 @@
|
||||
<ProjectConfiguration>
|
||||
<CopyReferencedAssembliesToWorkspace>false</CopyReferencedAssembliesToWorkspace>
|
||||
<ConsiderInconclusiveTestsAsPassing>false</ConsiderInconclusiveTestsAsPassing>
|
||||
<PreloadReferencedAssemblies>false</PreloadReferencedAssemblies>
|
||||
<AllowDynamicCodeContractChecking>true</AllowDynamicCodeContractChecking>
|
||||
<AllowStaticCodeContractChecking>false</AllowStaticCodeContractChecking>
|
||||
<IgnoreThisComponentCompletely>false</IgnoreThisComponentCompletely>
|
||||
<RunPreBuildEvents>false</RunPreBuildEvents>
|
||||
<RunPostBuildEvents>false</RunPostBuildEvents>
|
||||
<PreviouslyBuiltSuccessfully>true</PreviouslyBuiltSuccessfully>
|
||||
<InstrumentAssembly>true</InstrumentAssembly>
|
||||
<PreventSigningOfAssembly>false</PreventSigningOfAssembly>
|
||||
<AnalyseExecutionTimes>true</AnalyseExecutionTimes>
|
||||
<IncludeStaticReferencesInWorkspace>true</IncludeStaticReferencesInWorkspace>
|
||||
<DefaultTestTimeout>60000</DefaultTestTimeout>
|
||||
<UseBuildConfiguration />
|
||||
<ProxyProcessPath />
|
||||
<UseCPUArchitecture>AutoDetect</UseCPUArchitecture>
|
||||
</ProjectConfiguration>
|
||||
@@ -14,9 +14,9 @@ using TvdbLib.Data.Banner;
|
||||
|
||||
namespace NzbDrone.Core.Providers.Metadata
|
||||
{
|
||||
public abstract class Xbmc : MetadataBase
|
||||
public class Xbmc : MetadataBase
|
||||
{
|
||||
protected readonly Logger _logger;
|
||||
protected readonly Logger _logger = LogManager.GetCurrentClassLogger();
|
||||
|
||||
public Xbmc(ConfigProvider configProvider, DiskProvider diskProvider, BannerProvider bannerProvider, EpisodeProvider episodeProvider)
|
||||
: base(configProvider, diskProvider, bannerProvider, episodeProvider)
|
||||
@@ -71,22 +71,22 @@ namespace NzbDrone.Core.Providers.Metadata
|
||||
_logger.Debug("Downloading fanart for: {0}", series.Title);
|
||||
_bannerProvider.Download(tvDbSeries.FanartPath, Path.Combine(series.Path, "fanart.jpg"));
|
||||
|
||||
if (!_configProvider.MetadataUseBanners)
|
||||
if (_configProvider.MetadataUseBanners)
|
||||
{
|
||||
_logger.Debug("Downloading series thumbnail for: {0}", series.Title);
|
||||
_bannerProvider.Download(tvDbSeries.PosterPath, "folder.jpg");
|
||||
_logger.Debug("Downloading series banner for: {0}", series.Title);
|
||||
_bannerProvider.Download(tvDbSeries.BannerPath, Path.Combine(series.Path, "folder.jpg"));
|
||||
|
||||
_logger.Debug("Downloading Season posters for {0}", series.Title);
|
||||
DownloadSeasonThumbnails(series, tvDbSeries, TvdbSeasonBanner.Type.season);
|
||||
_logger.Debug("Downloading Season banners for {0}", series.Title);
|
||||
DownloadSeasonThumbnails(series, tvDbSeries, TvdbSeasonBanner.Type.seasonwide);
|
||||
}
|
||||
|
||||
else
|
||||
{
|
||||
_logger.Debug("Downloading series banner for: {0}", series.Title);
|
||||
_bannerProvider.Download(tvDbSeries.BannerPath, "folder.jpg");
|
||||
_logger.Debug("Downloading series thumbnail for: {0}", series.Title);
|
||||
_bannerProvider.Download(tvDbSeries.PosterPath, Path.Combine(series.Path, "folder.jpg"));
|
||||
|
||||
_logger.Debug("Downloading Season banners for {0}", series.Title);
|
||||
DownloadSeasonThumbnails(series, tvDbSeries, TvdbSeasonBanner.Type.seasonwide);
|
||||
_logger.Debug("Downloading Season posters for {0}", series.Title);
|
||||
DownloadSeasonThumbnails(series, tvDbSeries, TvdbSeasonBanner.Type.season);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -114,25 +114,33 @@ namespace NzbDrone.Core.Providers.Metadata
|
||||
}
|
||||
|
||||
_logger.Debug("Downloading episode thumbnail for: {0}", episodeFile.EpisodeFileId);
|
||||
_bannerProvider.Download(episodeFileThumbnail.BannerPath, "folder.jpg");
|
||||
_bannerProvider.Download(episodeFileThumbnail.BannerPath, episodeFile.Path.Replace(Path.GetExtension(episodeFile.Path), ".tbn"));
|
||||
|
||||
_logger.Debug("Generating filename.nfo for: {0}", episodeFile.EpisodeFileId);
|
||||
var sb = new StringBuilder();
|
||||
var xws = new XmlWriterSettings();
|
||||
xws.OmitXmlDeclaration = false;
|
||||
xws.Indent = false;
|
||||
|
||||
using (var xw = XmlWriter.Create(sb, xws))
|
||||
var xmlResult = String.Empty;
|
||||
foreach (var episode in episodes)
|
||||
{
|
||||
var doc = new XDocument();
|
||||
var sb = new StringBuilder();
|
||||
var xws = new XmlWriterSettings();
|
||||
xws.OmitXmlDeclaration = false;
|
||||
xws.Indent = false;
|
||||
|
||||
foreach (var episode in episodes)
|
||||
using (var xw = XmlWriter.Create(sb, xws))
|
||||
{
|
||||
var tvdbEpisode =
|
||||
tvDbSeries.Episodes.FirstOrDefault(
|
||||
e =>
|
||||
e.SeasonNumber == episode.SeasonNumber &&
|
||||
e.EpisodeNumber == episode.EpisodeNumber);
|
||||
var doc = new XDocument();
|
||||
var tvdbEpisode = tvDbSeries.Episodes.FirstOrDefault(
|
||||
e =>
|
||||
e.Id == episode.TvDbEpisodeId);
|
||||
|
||||
if (tvdbEpisode == null)
|
||||
{
|
||||
_logger.Debug("Looking up by TvDbEpisodeId failed, trying to match via season/episode number combination");
|
||||
tvdbEpisode = tvDbSeries.Episodes.FirstOrDefault(
|
||||
e =>
|
||||
e.SeasonNumber == episode.SeasonNumber &&
|
||||
e.EpisodeNumber == episode.EpisodeNumber);
|
||||
}
|
||||
|
||||
if (tvdbEpisode == null)
|
||||
{
|
||||
@@ -161,7 +169,7 @@ namespace NzbDrone.Core.Providers.Metadata
|
||||
|
||||
details.Add(new XElement("actor",
|
||||
new XElement("name", actor)
|
||||
));
|
||||
));
|
||||
}
|
||||
|
||||
foreach(var actor in tvDbSeries.TvdbActors)
|
||||
@@ -170,17 +178,17 @@ namespace NzbDrone.Core.Providers.Metadata
|
||||
new XElement("name", actor.Name),
|
||||
new XElement("role", actor.Role),
|
||||
new XElement("thumb", actor.ActorImage)
|
||||
));
|
||||
));
|
||||
}
|
||||
|
||||
doc.Add(details);
|
||||
doc.Save(xw);
|
||||
}
|
||||
xmlResult += sb.ToString();
|
||||
}
|
||||
|
||||
var filename = Path.GetFileNameWithoutExtension(episodeFile.Path) + ".nfo";
|
||||
var filename = episodeFile.Path.Replace(Path.GetExtension(episodeFile.Path), ".nfo");
|
||||
_logger.Debug("Saving episodedetails to: {0}", filename);
|
||||
_diskProvider.WriteAllText(filename, sb.ToString());
|
||||
_diskProvider.WriteAllText(filename, xmlResult);
|
||||
}
|
||||
|
||||
private void DownloadSeasonThumbnails(Series series, TvdbSeries tvDbSeries, TvdbSeasonBanner.Type bannerType)
|
||||
|
||||
@@ -8,6 +8,7 @@ using NzbDrone.Core.Providers.ExternalNotification;
|
||||
using NzbDrone.Core.Providers.Metadata;
|
||||
using NzbDrone.Core.Repository;
|
||||
using PetaPoco;
|
||||
using TvdbLib.Data;
|
||||
|
||||
namespace NzbDrone.Core.Providers
|
||||
{
|
||||
@@ -92,6 +93,11 @@ namespace NzbDrone.Core.Providers
|
||||
{
|
||||
var tvDbSeries = _tvDbProvider.GetSeries(series.SeriesId, false, true);
|
||||
|
||||
CreateForSeries(series, tvDbSeries);
|
||||
}
|
||||
|
||||
public virtual void CreateForSeries(Series series, TvdbSeries tvDbSeries)
|
||||
{
|
||||
foreach (var provider in _metadataProviders.Where(i => GetSettings(i.GetType()).Enable))
|
||||
{
|
||||
provider.ForSeries(series, tvDbSeries);
|
||||
|
||||
@@ -20,17 +20,19 @@ namespace NzbDrone.Core.Providers
|
||||
private readonly IDatabase _database;
|
||||
private readonly SceneMappingProvider _sceneNameMappingProvider;
|
||||
private readonly BannerProvider _bannerProvider;
|
||||
private readonly MetadataProvider _metadataProvider;
|
||||
private static readonly Regex TimeRegex = new Regex(@"^(?<time>\d+:?\d*)\W*(?<meridiem>am|pm)?", RegexOptions.IgnoreCase | RegexOptions.Compiled);
|
||||
|
||||
public SeriesProvider(IDatabase database, ConfigProvider configProviderProvider,
|
||||
TvDbProvider tvDbProviderProvider, SceneMappingProvider sceneNameMappingProvider,
|
||||
BannerProvider bannerProvider)
|
||||
BannerProvider bannerProvider, MetadataProvider metadataProvider)
|
||||
{
|
||||
_database = database;
|
||||
_configProvider = configProviderProvider;
|
||||
_tvDbProvider = tvDbProviderProvider;
|
||||
_sceneNameMappingProvider = sceneNameMappingProvider;
|
||||
_bannerProvider = bannerProvider;
|
||||
_metadataProvider = metadataProvider;
|
||||
}
|
||||
|
||||
public SeriesProvider()
|
||||
@@ -86,7 +88,7 @@ namespace NzbDrone.Core.Providers
|
||||
|
||||
public virtual Series UpdateSeriesInfo(int seriesId)
|
||||
{
|
||||
var tvDbSeries = _tvDbProvider.GetSeries(seriesId, false);
|
||||
var tvDbSeries = _tvDbProvider.GetSeries(seriesId, false, true);
|
||||
var series = GetSeries(seriesId);
|
||||
|
||||
series.SeriesId = tvDbSeries.Id;
|
||||
@@ -103,6 +105,8 @@ namespace NzbDrone.Core.Providers
|
||||
series.Network = tvDbSeries.Network;
|
||||
|
||||
UpdateSeries(series);
|
||||
_metadataProvider.CreateForSeries(series, tvDbSeries);
|
||||
|
||||
return series;
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user