aboutsummaryrefslogtreecommitdiff
path: root/MediaBrowser.XbmcMetadata/Savers
diff options
context:
space:
mode:
authorBond_009 <bond.009@outlook.com>2020-02-23 12:11:43 +0100
committerBond_009 <bond.009@outlook.com>2020-02-23 12:11:43 +0100
commit07cc4be6a747cfea40ee7a540385d6d8f38de726 (patch)
tree4bb46379abc5df6bf2a3e385b5fd281aa4c80b3d /MediaBrowser.XbmcMetadata/Savers
parent72c98e41ca2c0042edf645298371245c1abee354 (diff)
Fix some warnings
* Add analyzers to MediaBrowser.XbmcMetadata * Enable TreatWarningsAsErrors for MediaBrowser.XbmcMetadata * Add analyzers to MediaBrowser.WebDashboard * Enable TreatWarningsAsErrors for MediaBrowser.WebDashboard * Disable SA1600 in favor of CS1591
Diffstat (limited to 'MediaBrowser.XbmcMetadata/Savers')
-rw-r--r--MediaBrowser.XbmcMetadata/Savers/AlbumNfoSaver.cs16
-rw-r--r--MediaBrowser.XbmcMetadata/Savers/ArtistNfoSaver.cs22
-rw-r--r--MediaBrowser.XbmcMetadata/Savers/BaseNfoSaver.cs53
-rw-r--r--MediaBrowser.XbmcMetadata/Savers/EpisodeNfoSaver.cs26
-rw-r--r--MediaBrowser.XbmcMetadata/Savers/MovieNfoSaver.cs30
-rw-r--r--MediaBrowser.XbmcMetadata/Savers/SeasonNfoSaver.cs14
-rw-r--r--MediaBrowser.XbmcMetadata/Savers/SeriesNfoSaver.cs14
7 files changed, 129 insertions, 46 deletions
diff --git a/MediaBrowser.XbmcMetadata/Savers/AlbumNfoSaver.cs b/MediaBrowser.XbmcMetadata/Savers/AlbumNfoSaver.cs
index 233b3cb89..c22f77dcd 100644
--- a/MediaBrowser.XbmcMetadata/Savers/AlbumNfoSaver.cs
+++ b/MediaBrowser.XbmcMetadata/Savers/AlbumNfoSaver.cs
@@ -13,15 +13,27 @@ using Microsoft.Extensions.Logging;
namespace MediaBrowser.XbmcMetadata.Savers
{
+ /// <summary>
+ /// Nfo saver for albums.
+ /// </summary>
public class AlbumNfoSaver : BaseNfoSaver
{
+ /// <summary>
+ /// Initializes a new instance of the <see cref="AlbumNfoSaver"/> class.
+ /// </summary>
+ /// <param name="fileSystem">The file system.</param>
+ /// <param name="configurationManager">the server configuration manager.</param>
+ /// <param name="libraryManager">The library manager.</param>
+ /// <param name="userManager">The user manager.</param>
+ /// <param name="userDataManager">The user data manager.</param>
+ /// <param name="logger">The logger.</param>
public AlbumNfoSaver(
IFileSystem fileSystem,
IServerConfigurationManager configurationManager,
ILibraryManager libraryManager,
IUserManager userManager,
IUserDataManager userDataManager,
- ILogger logger)
+ ILogger<AlbumNfoSaver> logger)
: base(fileSystem, configurationManager, libraryManager, userManager, userDataManager, logger)
{
}
@@ -74,7 +86,7 @@ namespace MediaBrowser.XbmcMetadata.Savers
if (track.RunTimeTicks.HasValue)
{
- var time = TimeSpan.FromTicks(track.RunTimeTicks.Value).ToString(@"mm\:ss");
+ var time = TimeSpan.FromTicks(track.RunTimeTicks.Value).ToString(@"mm\:ss", CultureInfo.InvariantCulture);
writer.WriteElementString("duration", time);
}
diff --git a/MediaBrowser.XbmcMetadata/Savers/ArtistNfoSaver.cs b/MediaBrowser.XbmcMetadata/Savers/ArtistNfoSaver.cs
index 04565ff7e..6365cdecb 100644
--- a/MediaBrowser.XbmcMetadata/Savers/ArtistNfoSaver.cs
+++ b/MediaBrowser.XbmcMetadata/Savers/ArtistNfoSaver.cs
@@ -12,9 +12,27 @@ using Microsoft.Extensions.Logging;
namespace MediaBrowser.XbmcMetadata.Savers
{
+ /// <summary>
+ /// Nfo saver for artsist.
+ /// </summary>
public class ArtistNfoSaver : BaseNfoSaver
{
- public ArtistNfoSaver(IFileSystem fileSystem, IServerConfigurationManager configurationManager, ILibraryManager libraryManager, IUserManager userManager, IUserDataManager userDataManager, ILogger logger)
+ /// <summary>
+ /// Initializes a new instance of the <see cref="ArtistNfoSaver"/> class.
+ /// </summary>
+ /// <param name="fileSystem">The file system.</param>
+ /// <param name="configurationManager">the server configuration manager.</param>
+ /// <param name="libraryManager">The library manager.</param>
+ /// <param name="userManager">The user manager.</param>
+ /// <param name="userDataManager">The user data manager.</param>
+ /// <param name="logger">The logger.</param>
+ public ArtistNfoSaver(
+ IFileSystem fileSystem,
+ IServerConfigurationManager configurationManager,
+ ILibraryManager libraryManager,
+ IUserManager userManager,
+ IUserDataManager userDataManager,
+ ILogger<ArtistNfoSaver> logger)
: base(fileSystem, configurationManager, libraryManager, userManager, userDataManager, logger)
{
}
@@ -40,7 +58,7 @@ namespace MediaBrowser.XbmcMetadata.Savers
{
var formatString = ConfigurationManager.GetNfoConfiguration().ReleaseDateFormat;
- writer.WriteElementString("disbanded", artist.EndDate.Value.ToLocalTime().ToString(formatString));
+ writer.WriteElementString("disbanded", artist.EndDate.Value.ToLocalTime().ToString(formatString, CultureInfo.InvariantCulture));
}
var albums = artist
diff --git a/MediaBrowser.XbmcMetadata/Savers/BaseNfoSaver.cs b/MediaBrowser.XbmcMetadata/Savers/BaseNfoSaver.cs
index 981c3a53a..90e8b4b99 100644
--- a/MediaBrowser.XbmcMetadata/Savers/BaseNfoSaver.cs
+++ b/MediaBrowser.XbmcMetadata/Savers/BaseNfoSaver.cs
@@ -1,3 +1,5 @@
+#pragma warning disable CS1591
+
using System;
using System.Collections.Generic;
using System.Globalization;
@@ -28,6 +30,9 @@ namespace MediaBrowser.XbmcMetadata.Savers
public const string YouTubeWatchUrl = "https://www.youtube.com/watch?v=";
+ // filters control characters but allows only properly-formed surrogate sequences
+ private const string _invalidXMLCharsRegex = @"(?<![\uD800-\uDBFF])[\uDC00-\uDFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|[\x00-\x08\x0B\x0C\x0E-\x1F\x7F-\x9F\uFEFF\uFFFE\uFFFF]";
+
private static readonly HashSet<string> _commonTags = new HashSet<string>(StringComparer.OrdinalIgnoreCase)
{
"plot",
@@ -94,9 +99,6 @@ namespace MediaBrowser.XbmcMetadata.Savers
"countrycode"
};
- // filters control characters but allows only properly-formed surrogate sequences
- private const string _invalidXMLCharsRegex = @"(?<![\uD800-\uDBFF])[\uDC00-\uDFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|[\x00-\x08\x0B\x0C\x0E-\x1F\x7F-\x9F\uFEFF\uFFFE\uFFFF]";
-
protected BaseNfoSaver(
IFileSystem fileSystem,
IServerConfigurationManager configurationManager,
@@ -247,7 +249,7 @@ namespace MediaBrowser.XbmcMetadata.Savers
if (baseItem != null)
{
- AddCommonNodes(baseItem, writer, LibraryManager, UserManager, UserDataManager, FileSystem, ConfigurationManager);
+ AddCommonNodes(baseItem, writer, LibraryManager, UserManager, UserDataManager, ConfigurationManager);
}
WriteCustomElements(item, writer);
@@ -265,11 +267,9 @@ namespace MediaBrowser.XbmcMetadata.Savers
}
catch (FileNotFoundException)
{
-
}
catch (IOException)
{
-
}
catch (XmlException ex)
{
@@ -364,8 +364,8 @@ namespace MediaBrowser.XbmcMetadata.Savers
writer.WriteElementString("samplingrate", stream.SampleRate.Value.ToString(CultureInfo.InvariantCulture));
}
- writer.WriteElementString("default", stream.IsDefault.ToString());
- writer.WriteElementString("forced", stream.IsForced.ToString());
+ writer.WriteElementString("default", stream.IsDefault.ToString(CultureInfo.InvariantCulture));
+ writer.WriteElementString("forced", stream.IsForced.ToString(CultureInfo.InvariantCulture));
if (stream.Type == MediaStreamType.Video)
{
@@ -384,7 +384,7 @@ namespace MediaBrowser.XbmcMetadata.Savers
if (item is Video video)
{
- //AddChapters(video, builder, itemRepository);
+ // AddChapters(video, builder, itemRepository);
if (video.Video3DFormat.HasValue)
{
@@ -420,21 +420,19 @@ namespace MediaBrowser.XbmcMetadata.Savers
/// <summary>
/// Adds the common nodes.
/// </summary>
- /// <returns>Task.</returns>
private void AddCommonNodes(
BaseItem item,
XmlWriter writer,
ILibraryManager libraryManager,
IUserManager userManager,
IUserDataManager userDataRepo,
- IFileSystem fileSystem,
IServerConfigurationManager config)
{
var writtenProviderIds = new HashSet<string>(StringComparer.OrdinalIgnoreCase);
var overview = (item.Overview ?? string.Empty)
.StripHtml()
- .Replace("&quot;", "'");
+ .Replace("&quot;", "'", StringComparison.Ordinal);
var options = config.GetNfoConfiguration();
@@ -455,7 +453,7 @@ namespace MediaBrowser.XbmcMetadata.Savers
{
var outline = (item.Tagline ?? string.Empty)
.StripHtml()
- .Replace("&quot;", "'");
+ .Replace("&quot;", "'", StringComparison.Ordinal);
writer.WriteElementString("outline", outline);
}
@@ -476,7 +474,7 @@ namespace MediaBrowser.XbmcMetadata.Savers
writer.WriteElementString("lockedfields", string.Join("|", item.LockedFields));
}
- writer.WriteElementString("dateadded", item.DateCreated.ToLocalTime().ToString(DateAddedFormat));
+ writer.WriteElementString("dateadded", item.DateCreated.ToLocalTime().ToString(DateAddedFormat, CultureInfo.InvariantCulture));
writer.WriteElementString("title", item.Name ?? string.Empty);
@@ -590,6 +588,7 @@ namespace MediaBrowser.XbmcMetadata.Savers
{
writer.WriteElementString("language", item.PreferredMetadataLanguage);
}
+
if (!string.IsNullOrEmpty(item.PreferredMetadataCountryCode))
{
writer.WriteElementString("countrycode", item.PreferredMetadataCountryCode);
@@ -603,16 +602,16 @@ namespace MediaBrowser.XbmcMetadata.Savers
{
writer.WriteElementString(
"formed",
- item.PremiereDate.Value.ToLocalTime().ToString(formatString));
+ item.PremiereDate.Value.ToLocalTime().ToString(formatString, CultureInfo.InvariantCulture));
}
else
{
writer.WriteElementString(
"premiered",
- item.PremiereDate.Value.ToLocalTime().ToString(formatString));
+ item.PremiereDate.Value.ToLocalTime().ToString(formatString, CultureInfo.InvariantCulture));
writer.WriteElementString(
"releasedate",
- item.PremiereDate.Value.ToLocalTime().ToString(formatString));
+ item.PremiereDate.Value.ToLocalTime().ToString(formatString, CultureInfo.InvariantCulture));
}
}
@@ -624,7 +623,7 @@ namespace MediaBrowser.XbmcMetadata.Savers
writer.WriteElementString(
"enddate",
- item.EndDate.Value.ToLocalTime().ToString(formatString));
+ item.EndDate.Value.ToLocalTime().ToString(formatString, CultureInfo.InvariantCulture));
}
}
@@ -780,12 +779,12 @@ namespace MediaBrowser.XbmcMetadata.Savers
if (options.SaveImagePathsInNfo)
{
- AddImages(item, writer, libraryManager, config);
+ AddImages(item, writer, libraryManager);
}
AddUserData(item, writer, userManager, userDataRepo, options);
- AddActors(people, writer, libraryManager, fileSystem, config, options.SaveImagePathsInNfo);
+ AddActors(people, writer, libraryManager, options.SaveImagePathsInNfo);
if (item is BoxSet folder)
{
@@ -828,7 +827,7 @@ namespace MediaBrowser.XbmcMetadata.Savers
return url.Replace(YouTubeWatchUrl, "plugin://plugin.video.youtube/?action=play_video&videoid=", StringComparison.OrdinalIgnoreCase);
}
- private void AddImages(BaseItem item, XmlWriter writer, ILibraryManager libraryManager, IServerConfigurationManager config)
+ private void AddImages(BaseItem item, XmlWriter writer, ILibraryManager libraryManager)
{
writer.WriteStartElement("art");
@@ -836,12 +835,12 @@ namespace MediaBrowser.XbmcMetadata.Savers
if (image != null)
{
- writer.WriteElementString("poster", GetImagePathToSave(image, libraryManager, config));
+ writer.WriteElementString("poster", GetImagePathToSave(image, libraryManager));
}
foreach (var backdrop in item.GetImages(ImageType.Backdrop))
{
- writer.WriteElementString("fanart", GetImagePathToSave(backdrop, libraryManager, config));
+ writer.WriteElementString("fanart", GetImagePathToSave(backdrop, libraryManager));
}
writer.WriteEndElement();
@@ -893,7 +892,7 @@ namespace MediaBrowser.XbmcMetadata.Savers
{
writer.WriteElementString(
"lastplayed",
- userdata.LastPlayedDate.Value.ToLocalTime().ToString("yyyy-MM-dd HH:mm:ss").ToLowerInvariant());
+ userdata.LastPlayedDate.Value.ToLocalTime().ToString("yyyy-MM-dd HH:mm:ss", CultureInfo.InvariantCulture).ToLowerInvariant());
}
writer.WriteStartElement("resume");
@@ -911,7 +910,7 @@ namespace MediaBrowser.XbmcMetadata.Savers
writer.WriteEndElement();
}
- private void AddActors(List<PersonInfo> people, XmlWriter writer, ILibraryManager libraryManager, IFileSystem fileSystem, IServerConfigurationManager config, bool saveImagePath)
+ private void AddActors(List<PersonInfo> people, XmlWriter writer, ILibraryManager libraryManager, bool saveImagePath)
{
foreach (var person in people)
{
@@ -953,7 +952,7 @@ namespace MediaBrowser.XbmcMetadata.Savers
{
writer.WriteElementString(
"thumb",
- GetImagePathToSave(image, libraryManager, config));
+ GetImagePathToSave(image, libraryManager));
}
}
@@ -961,7 +960,7 @@ namespace MediaBrowser.XbmcMetadata.Savers
}
}
- private string GetImagePathToSave(ItemImageInfo image, ILibraryManager libraryManager, IServerConfigurationManager config)
+ private string GetImagePathToSave(ItemImageInfo image, ILibraryManager libraryManager)
{
if (!image.IsLocalFile)
{
diff --git a/MediaBrowser.XbmcMetadata/Savers/EpisodeNfoSaver.cs b/MediaBrowser.XbmcMetadata/Savers/EpisodeNfoSaver.cs
index 091c1957e..ac2fbb8d2 100644
--- a/MediaBrowser.XbmcMetadata/Savers/EpisodeNfoSaver.cs
+++ b/MediaBrowser.XbmcMetadata/Savers/EpisodeNfoSaver.cs
@@ -12,15 +12,33 @@ using Microsoft.Extensions.Logging;
namespace MediaBrowser.XbmcMetadata.Savers
{
+ /// <summary>
+ /// Nfo saver for episodes.
+ /// </summary>
public class EpisodeNfoSaver : BaseNfoSaver
{
- public EpisodeNfoSaver(IFileSystem fileSystem, IServerConfigurationManager configurationManager, ILibraryManager libraryManager, IUserManager userManager, IUserDataManager userDataManager, ILogger logger)
+ private readonly CultureInfo _usCulture = new CultureInfo("en-US");
+
+ /// <summary>
+ /// Initializes a new instance of the <see cref="EpisodeNfoSaver"/> class.
+ /// </summary>
+ /// <param name="fileSystem">The file system.</param>
+ /// <param name="configurationManager">the server configuration manager.</param>
+ /// <param name="libraryManager">The library manager.</param>
+ /// <param name="userManager">The user manager.</param>
+ /// <param name="userDataManager">The user data manager.</param>
+ /// <param name="logger">The logger.</param>
+ public EpisodeNfoSaver(
+ IFileSystem fileSystem,
+ IServerConfigurationManager configurationManager,
+ ILibraryManager libraryManager,
+ IUserManager userManager,
+ IUserDataManager userDataManager,
+ ILogger<EpisodeNfoSaver> logger)
: base(fileSystem, configurationManager, libraryManager, userManager, userDataManager, logger)
{
}
- private readonly CultureInfo _usCulture = new CultureInfo("en-US");
-
/// <inheritdoc />
protected override string GetLocalSavePath(BaseItem item)
=> Path.ChangeExtension(item.Path, ".nfo");
@@ -57,7 +75,7 @@ namespace MediaBrowser.XbmcMetadata.Savers
{
var formatString = ConfigurationManager.GetNfoConfiguration().ReleaseDateFormat;
- writer.WriteElementString("aired", episode.PremiereDate.Value.ToLocalTime().ToString(formatString));
+ writer.WriteElementString("aired", episode.PremiereDate.Value.ToLocalTime().ToString(formatString, CultureInfo.InvariantCulture));
}
if (!episode.ParentIndexNumber.HasValue || episode.ParentIndexNumber.Value == 0)
diff --git a/MediaBrowser.XbmcMetadata/Savers/MovieNfoSaver.cs b/MediaBrowser.XbmcMetadata/Savers/MovieNfoSaver.cs
index 08a752e33..eef989a5b 100644
--- a/MediaBrowser.XbmcMetadata/Savers/MovieNfoSaver.cs
+++ b/MediaBrowser.XbmcMetadata/Savers/MovieNfoSaver.cs
@@ -14,9 +14,27 @@ using Microsoft.Extensions.Logging;
namespace MediaBrowser.XbmcMetadata.Savers
{
+ /// <summary>
+ /// Nfo saver for movies.
+ /// </summary>
public class MovieNfoSaver : BaseNfoSaver
{
- public MovieNfoSaver(IFileSystem fileSystem, IServerConfigurationManager configurationManager, ILibraryManager libraryManager, IUserManager userManager, IUserDataManager userDataManager, ILogger logger)
+ /// <summary>
+ /// Initializes a new instance of the <see cref="MovieNfoSaver"/> class.
+ /// </summary>
+ /// <param name="fileSystem">The file system.</param>
+ /// <param name="configurationManager">the server configuration manager.</param>
+ /// <param name="libraryManager">The library manager.</param>
+ /// <param name="userManager">The user manager.</param>
+ /// <param name="userDataManager">The user data manager.</param>
+ /// <param name="logger">The logger.</param>
+ public MovieNfoSaver(
+ IFileSystem fileSystem,
+ IServerConfigurationManager configurationManager,
+ ILibraryManager libraryManager,
+ IUserManager userManager,
+ IUserDataManager userDataManager,
+ ILogger<MovieNfoSaver> logger)
: base(fileSystem, configurationManager, libraryManager, userManager, userDataManager, logger)
{
}
@@ -25,7 +43,7 @@ namespace MediaBrowser.XbmcMetadata.Savers
protected override string GetLocalSavePath(BaseItem item)
=> GetMovieSavePaths(new ItemInfo(item)).FirstOrDefault();
- public static IEnumerable<string> GetMovieSavePaths(ItemInfo item)
+ internal static IEnumerable<string> GetMovieSavePaths(ItemInfo item)
{
if (item.VideoType == VideoType.Dvd && !item.IsPlaceHolder)
{
@@ -42,13 +60,6 @@ namespace MediaBrowser.XbmcMetadata.Savers
}
else
{
- // http://kodi.wiki/view/NFO_files/Movies
- // movie.nfo will override all and any .nfo files in the same folder as the media files if you use the "Use foldernames for lookups" setting. If you don't, then moviename.nfo is used
- //if (!item.IsInMixedFolder && item.ItemType == typeof(Movie))
- //{
- // list.Add(Path.Combine(item.ContainingFolderPath, "movie.nfo"));
- //}
-
yield return Path.ChangeExtension(item.Path, ".nfo");
if (!item.IsInMixedFolder)
@@ -95,6 +106,7 @@ namespace MediaBrowser.XbmcMetadata.Savers
{
writer.WriteElementString("artist", artist);
}
+
if (!string.IsNullOrEmpty(musicVideo.Album))
{
writer.WriteElementString("album", musicVideo.Album);
diff --git a/MediaBrowser.XbmcMetadata/Savers/SeasonNfoSaver.cs b/MediaBrowser.XbmcMetadata/Savers/SeasonNfoSaver.cs
index 25695121d..925a230bd 100644
--- a/MediaBrowser.XbmcMetadata/Savers/SeasonNfoSaver.cs
+++ b/MediaBrowser.XbmcMetadata/Savers/SeasonNfoSaver.cs
@@ -11,15 +11,27 @@ using Microsoft.Extensions.Logging;
namespace MediaBrowser.XbmcMetadata.Savers
{
+ /// <summary>
+ /// Nfo saver for seasons.
+ /// </summary>
public class SeasonNfoSaver : BaseNfoSaver
{
+ /// <summary>
+ /// Initializes a new instance of the <see cref="SeasonNfoSaver"/> class.
+ /// </summary>
+ /// <param name="fileSystem">The file system.</param>
+ /// <param name="configurationManager">the server configuration manager.</param>
+ /// <param name="libraryManager">The library manager.</param>
+ /// <param name="userManager">The user manager.</param>
+ /// <param name="userDataManager">The user data manager.</param>
+ /// <param name="logger">The logger.</param>
public SeasonNfoSaver(
IFileSystem fileSystem,
IServerConfigurationManager configurationManager,
ILibraryManager libraryManager,
IUserManager userManager,
IUserDataManager userDataManager,
- ILogger logger)
+ ILogger<SeasonNfoSaver> logger)
: base(fileSystem, configurationManager, libraryManager, userManager, userDataManager, logger)
{
}
diff --git a/MediaBrowser.XbmcMetadata/Savers/SeriesNfoSaver.cs b/MediaBrowser.XbmcMetadata/Savers/SeriesNfoSaver.cs
index 8d7faece7..d011b32df 100644
--- a/MediaBrowser.XbmcMetadata/Savers/SeriesNfoSaver.cs
+++ b/MediaBrowser.XbmcMetadata/Savers/SeriesNfoSaver.cs
@@ -12,8 +12,20 @@ using Microsoft.Extensions.Logging;
namespace MediaBrowser.XbmcMetadata.Savers
{
+ /// <summary>
+ /// Nfo saver for series.
+ /// </summary>
public class SeriesNfoSaver : BaseNfoSaver
{
+ /// <summary>
+ /// Initializes a new instance of the <see cref="SeriesNfoSaver"/> class.
+ /// </summary>
+ /// <param name="fileSystem">The file system.</param>
+ /// <param name="configurationManager">the server configuration manager.</param>
+ /// <param name="libraryManager">The library manager.</param>
+ /// <param name="userManager">The user manager.</param>
+ /// <param name="userDataManager">The user data manager.</param>
+ /// <param name="logger">The logger.</param>
public SeriesNfoSaver(
IFileSystem fileSystem,
IServerConfigurationManager configurationManager,
@@ -56,7 +68,7 @@ namespace MediaBrowser.XbmcMetadata.Savers
: language;
writer.WriteStartElement("url");
- writer.WriteAttributeString("cache", string.Format("{0}.xml", tvdb));
+ writer.WriteAttributeString("cache", tvdb + ".xml");
writer.WriteString(
string.Format(
CultureInfo.InvariantCulture,