New: Add TMDB/IMDB url in Kodi metadata

This commit is contained in:
FuNK3Y
2019-11-17 17:14:31 +01:00
committed by Devin Buhl
parent e8b658646a
commit fedf2326f0
2 changed files with 134 additions and 125 deletions

View File

@@ -102,16 +102,11 @@ namespace NzbDrone.Core.Extras.Metadata.Consumers.Xbmc
public override MetadataFileResult MovieMetadata(Movie movie, MovieFile movieFile) public override MetadataFileResult MovieMetadata(Movie movie, MovieFile movieFile)
{ {
if (!Settings.MovieMetadata)
{
return null;
}
_logger.Debug("Generating Movie Metadata for: {0}", Path.Combine(movie.Path, movieFile.RelativePath));
var watched = GetExistingWatchedStatus(movie, movieFile.RelativePath);
var xmlResult = string.Empty; var xmlResult = string.Empty;
if (Settings.MovieMetadata)
{
_logger.Debug("Generating Movie Metadata for: {0}", Path.Combine(movie.Path, movieFile.RelativePath));
var watched = GetExistingWatchedStatus(movie, movieFile.RelativePath);
var sb = new StringBuilder(); var sb = new StringBuilder();
var xws = new XmlWriterSettings(); var xws = new XmlWriterSettings();
@@ -243,17 +238,20 @@ namespace NzbDrone.Core.Extras.Metadata.Consumers.Xbmc
xmlResult += doc.ToString(); xmlResult += doc.ToString();
xmlResult += Environment.NewLine; xmlResult += Environment.NewLine;
}
}
if (Settings.MovieMetadataURL)
{
xmlResult += "https://www.themoviedb.org/movie/" + movie.TmdbId;
xmlResult += Environment.NewLine;
xmlResult += "https://www.imdb.com/title/" + movie.ImdbId;
xmlResult += Environment.NewLine;
} }
var metadataFileName = GetMovieMetadataFilename(movieFile.RelativePath); var metadataFileName = GetMovieMetadataFilename(movieFile.RelativePath);
if (Settings.UseMovieNfo) return xmlResult == string.Empty ? null : new MetadataFileResult(metadataFileName, xmlResult.Trim(Environment.NewLine.ToCharArray()));
{
metadataFileName = "movie.nfo";
}
return new MetadataFileResult(metadataFileName, xmlResult.Trim(Environment.NewLine.ToCharArray()));
} }
public override List<ImageFileResult> MovieImages(Movie movie) public override List<ImageFileResult> MovieImages(Movie movie)
@@ -278,9 +276,16 @@ namespace NzbDrone.Core.Extras.Metadata.Consumers.Xbmc
} }
private string GetMovieMetadataFilename(string movieFilePath) private string GetMovieMetadataFilename(string movieFilePath)
{
if (Settings.UseMovieNfo)
{
return Path.Combine(Path.GetDirectoryName(movieFilePath), "movie.nfo");
}
else
{ {
return Path.ChangeExtension(movieFilePath, "nfo"); return Path.ChangeExtension(movieFilePath, "nfo");
} }
}
private bool GetExistingWatchedStatus(Movie movie, string movieFilePath) private bool GetExistingWatchedStatus(Movie movie, string movieFilePath)
{ {

View File

@@ -19,6 +19,7 @@ namespace NzbDrone.Core.Extras.Metadata.Consumers.Xbmc
public XbmcMetadataSettings() public XbmcMetadataSettings()
{ {
MovieMetadata = true; MovieMetadata = true;
MovieMetadataURL = true;
MovieImages = true; MovieImages = true;
UseMovieNfo = false; UseMovieNfo = false;
} }
@@ -26,10 +27,13 @@ namespace NzbDrone.Core.Extras.Metadata.Consumers.Xbmc
[FieldDefinition(0, Label = "Movie Metadata", Type = FieldType.Checkbox)] [FieldDefinition(0, Label = "Movie Metadata", Type = FieldType.Checkbox)]
public bool MovieMetadata { get; set; } public bool MovieMetadata { get; set; }
[FieldDefinition(1, Label = "Movie Images", Type = FieldType.Checkbox)] [FieldDefinition(1, Label = "Movie Metadata URL", Type = FieldType.Checkbox, HelpText = "Radarr will write the tmdb/imdb url in the .nfo file", Advanced = true)]
public bool MovieMetadataURL { get; set; }
[FieldDefinition(2, Label = "Movie Images", Type = FieldType.Checkbox)]
public bool MovieImages { get; set; } public bool MovieImages { get; set; }
[FieldDefinition(2, Label = "Use Movie.nfo", Type = FieldType.Checkbox, HelpText = "Radarr will write metadata to movie.nfo instead of the default <movie-filename>.nfo")] [FieldDefinition(3, Label = "Use Movie.nfo", Type = FieldType.Checkbox, HelpText = "Radarr will write metadata to movie.nfo instead of the default <movie-filename>.nfo")]
public bool UseMovieNfo { get; set; } public bool UseMovieNfo { get; set; }
public bool IsValid => true; public bool IsValid => true;