aboutsummaryrefslogtreecommitdiff
path: root/MediaBrowser.Controller
diff options
context:
space:
mode:
authorEric Reed <ebr@mediabrowser3.com>2013-11-07 12:27:21 -0500
committerEric Reed <ebr@mediabrowser3.com>2013-11-07 12:27:21 -0500
commitbda3a301e70b8cdca8af06e6395701ec98a89e09 (patch)
treec32ec5d48a48a64bb9e06dd827da9fbc04ce6406 /MediaBrowser.Controller
parent63554bde5be929588e9073415ea811170264508b (diff)
parent01f1ed05b9a401939ccbd586e07951c144232608 (diff)
Merge branch 'master' of https://github.com/MediaBrowser/MediaBrowser
Diffstat (limited to 'MediaBrowser.Controller')
-rw-r--r--MediaBrowser.Controller/Drawing/ImageProcessingOptions.cs32
-rw-r--r--MediaBrowser.Controller/Entities/Audio/Artist.cs1
-rw-r--r--MediaBrowser.Controller/Entities/Audio/MusicAlbum.cs1
-rw-r--r--MediaBrowser.Controller/Entities/Audio/MusicArtist.cs1
-rw-r--r--MediaBrowser.Controller/Entities/BaseItem.cs12
-rw-r--r--MediaBrowser.Controller/Entities/IHasCriticRating.cs20
-rw-r--r--MediaBrowser.Controller/Entities/Movies/Movie.cs14
-rw-r--r--MediaBrowser.Controller/Entities/Trailer.cs14
-rw-r--r--MediaBrowser.Controller/MediaBrowser.Controller.csproj1
-rw-r--r--MediaBrowser.Controller/Providers/BaseItemXmlParser.cs19
-rw-r--r--MediaBrowser.Controller/Providers/BaseMetadataProvider.cs33
11 files changed, 124 insertions, 24 deletions
diff --git a/MediaBrowser.Controller/Drawing/ImageProcessingOptions.cs b/MediaBrowser.Controller/Drawing/ImageProcessingOptions.cs
index 76a079c57..9222a8907 100644
--- a/MediaBrowser.Controller/Drawing/ImageProcessingOptions.cs
+++ b/MediaBrowser.Controller/Drawing/ImageProcessingOptions.cs
@@ -40,5 +40,37 @@ namespace MediaBrowser.Controller.Drawing
public int? PercentPlayed { get; set; }
public string BackgroundColor { get; set; }
+
+ public bool HasDefaultOptions()
+ {
+ return HasDefaultOptionsWithoutSize() &&
+ !Width.HasValue &&
+ !Height.HasValue &&
+ !MaxWidth.HasValue &&
+ !MaxHeight.HasValue;
+ }
+
+ public bool HasDefaultOptionsWithoutSize()
+ {
+ return !CropWhiteSpace &&
+ (!Quality.HasValue || Quality.Value == 100) &&
+ IsOutputFormatDefault &&
+ !AddPlayedIndicator &&
+ !PercentPlayed.HasValue &&
+ string.IsNullOrEmpty(BackgroundColor);
+ }
+
+ private bool IsOutputFormatDefault
+ {
+ get
+ {
+ if (OutputFormat == ImageOutputFormat.Original)
+ {
+ return true;
+ }
+
+ return false;
+ }
+ }
}
}
diff --git a/MediaBrowser.Controller/Entities/Audio/Artist.cs b/MediaBrowser.Controller/Entities/Audio/Artist.cs
index 5e14b0152..947ee1122 100644
--- a/MediaBrowser.Controller/Entities/Audio/Artist.cs
+++ b/MediaBrowser.Controller/Entities/Audio/Artist.cs
@@ -20,6 +20,7 @@ namespace MediaBrowser.Controller.Entities.Audio
}
public string LastFmImageUrl { get; set; }
+ public string LastFmImageSize { get; set; }
/// <summary>
/// Gets the user data key.
diff --git a/MediaBrowser.Controller/Entities/Audio/MusicAlbum.cs b/MediaBrowser.Controller/Entities/Audio/MusicAlbum.cs
index b96cd625f..cb64cfdfe 100644
--- a/MediaBrowser.Controller/Entities/Audio/MusicAlbum.cs
+++ b/MediaBrowser.Controller/Entities/Audio/MusicAlbum.cs
@@ -17,6 +17,7 @@ namespace MediaBrowser.Controller.Entities.Audio
}
public string LastFmImageUrl { get; set; }
+ public string LastFmImageSize { get; set; }
/// <summary>
/// Songs will group into us so don't also include us in the index
diff --git a/MediaBrowser.Controller/Entities/Audio/MusicArtist.cs b/MediaBrowser.Controller/Entities/Audio/MusicArtist.cs
index 75231ec6a..d791c92ae 100644
--- a/MediaBrowser.Controller/Entities/Audio/MusicArtist.cs
+++ b/MediaBrowser.Controller/Entities/Audio/MusicArtist.cs
@@ -11,6 +11,7 @@ namespace MediaBrowser.Controller.Entities.Audio
/// </summary>
/// <value>The last fm image URL.</value>
public string LastFmImageUrl { get; set; }
+ public string LastFmImageSize { get; set; }
/// <summary>
/// Gets the user data key.
diff --git a/MediaBrowser.Controller/Entities/BaseItem.cs b/MediaBrowser.Controller/Entities/BaseItem.cs
index 839fe34ff..f8b2fad23 100644
--- a/MediaBrowser.Controller/Entities/BaseItem.cs
+++ b/MediaBrowser.Controller/Entities/BaseItem.cs
@@ -112,18 +112,6 @@ namespace MediaBrowser.Controller.Entities
public double? Revenue { get; set; }
/// <summary>
- /// Gets or sets the critic rating.
- /// </summary>
- /// <value>The critic rating.</value>
- public float? CriticRating { get; set; }
-
- /// <summary>
- /// Gets or sets the critic rating summary.
- /// </summary>
- /// <value>The critic rating summary.</value>
- public string CriticRatingSummary { get; set; }
-
- /// <summary>
/// Gets or sets the trailer URL.
/// </summary>
/// <value>The trailer URL.</value>
diff --git a/MediaBrowser.Controller/Entities/IHasCriticRating.cs b/MediaBrowser.Controller/Entities/IHasCriticRating.cs
new file mode 100644
index 000000000..d2b93759d
--- /dev/null
+++ b/MediaBrowser.Controller/Entities/IHasCriticRating.cs
@@ -0,0 +1,20 @@
+namespace MediaBrowser.Controller.Entities
+{
+ /// <summary>
+ /// Interface IHasCriticRating
+ /// </summary>
+ public interface IHasCriticRating
+ {
+ /// <summary>
+ /// Gets or sets the critic rating.
+ /// </summary>
+ /// <value>The critic rating.</value>
+ float? CriticRating { get; set; }
+
+ /// <summary>
+ /// Gets or sets the critic rating summary.
+ /// </summary>
+ /// <value>The critic rating summary.</value>
+ string CriticRatingSummary { get; set; }
+ }
+}
diff --git a/MediaBrowser.Controller/Entities/Movies/Movie.cs b/MediaBrowser.Controller/Entities/Movies/Movie.cs
index 516ee9a8a..54ad9c1c9 100644
--- a/MediaBrowser.Controller/Entities/Movies/Movie.cs
+++ b/MediaBrowser.Controller/Entities/Movies/Movie.cs
@@ -11,7 +11,7 @@ namespace MediaBrowser.Controller.Entities.Movies
/// <summary>
/// Class Movie
/// </summary>
- public class Movie : Video
+ public class Movie : Video, IHasCriticRating
{
public List<Guid> SpecialFeatureIds { get; set; }
@@ -21,6 +21,18 @@ namespace MediaBrowser.Controller.Entities.Movies
}
/// <summary>
+ /// Gets or sets the critic rating.
+ /// </summary>
+ /// <value>The critic rating.</value>
+ public float? CriticRating { get; set; }
+
+ /// <summary>
+ /// Gets or sets the critic rating summary.
+ /// </summary>
+ /// <value>The critic rating summary.</value>
+ public string CriticRatingSummary { get; set; }
+
+ /// <summary>
/// Gets or sets the name of the TMDB collection.
/// </summary>
/// <value>The name of the TMDB collection.</value>
diff --git a/MediaBrowser.Controller/Entities/Trailer.cs b/MediaBrowser.Controller/Entities/Trailer.cs
index e7d47f7ec..c9fe471b3 100644
--- a/MediaBrowser.Controller/Entities/Trailer.cs
+++ b/MediaBrowser.Controller/Entities/Trailer.cs
@@ -7,7 +7,7 @@ namespace MediaBrowser.Controller.Entities
/// <summary>
/// Class Trailer
/// </summary>
- public class Trailer : Video
+ public class Trailer : Video, IHasCriticRating
{
public Trailer()
{
@@ -16,6 +16,18 @@ namespace MediaBrowser.Controller.Entities
}
/// <summary>
+ /// Gets or sets the critic rating.
+ /// </summary>
+ /// <value>The critic rating.</value>
+ public float? CriticRating { get; set; }
+
+ /// <summary>
+ /// Gets or sets the critic rating summary.
+ /// </summary>
+ /// <value>The critic rating summary.</value>
+ public string CriticRatingSummary { get; set; }
+
+ /// <summary>
/// Gets a value indicating whether this instance is local trailer.
/// </summary>
/// <value><c>true</c> if this instance is local trailer; otherwise, <c>false</c>.</value>
diff --git a/MediaBrowser.Controller/MediaBrowser.Controller.csproj b/MediaBrowser.Controller/MediaBrowser.Controller.csproj
index 978d56bd4..94ff5d305 100644
--- a/MediaBrowser.Controller/MediaBrowser.Controller.csproj
+++ b/MediaBrowser.Controller/MediaBrowser.Controller.csproj
@@ -89,6 +89,7 @@
<Compile Include="Entities\GameGenre.cs" />
<Compile Include="Entities\GameSystem.cs" />
<Compile Include="Entities\IByReferenceItem.cs" />
+ <Compile Include="Entities\IHasCriticRating.cs" />
<Compile Include="Entities\IItemByName.cs" />
<Compile Include="Entities\ILibraryItem.cs" />
<Compile Include="Entities\ImageSourceInfo.cs" />
diff --git a/MediaBrowser.Controller/Providers/BaseItemXmlParser.cs b/MediaBrowser.Controller/Providers/BaseItemXmlParser.cs
index e9bb7f66d..9fdbbf3b7 100644
--- a/MediaBrowser.Controller/Providers/BaseItemXmlParser.cs
+++ b/MediaBrowser.Controller/Providers/BaseItemXmlParser.cs
@@ -143,10 +143,16 @@ namespace MediaBrowser.Controller.Providers
case "CriticRating":
{
var text = reader.ReadElementContentAsString();
- float value;
- if (float.TryParse(text, NumberStyles.Any, _usCulture, out value))
+
+ var hasCriticRating = item as IHasCriticRating;
+
+ if (hasCriticRating != null && !string.IsNullOrEmpty(text))
{
- item.CriticRating = value;
+ float value;
+ if (float.TryParse(text, NumberStyles.Any, _usCulture, out value))
+ {
+ hasCriticRating.CriticRating = value;
+ }
}
break;
@@ -207,7 +213,12 @@ namespace MediaBrowser.Controller.Providers
if (!string.IsNullOrWhiteSpace(val))
{
- item.CriticRatingSummary = val;
+ var hasCriticRating = item as IHasCriticRating;
+
+ if (hasCriticRating != null)
+ {
+ hasCriticRating.CriticRatingSummary = val;
+ }
}
break;
diff --git a/MediaBrowser.Controller/Providers/BaseMetadataProvider.cs b/MediaBrowser.Controller/Providers/BaseMetadataProvider.cs
index de7e8e98d..07bb7d5b2 100644
--- a/MediaBrowser.Controller/Providers/BaseMetadataProvider.cs
+++ b/MediaBrowser.Controller/Providers/BaseMetadataProvider.cs
@@ -24,6 +24,7 @@ namespace MediaBrowser.Controller.Providers
/// </summary>
/// <value>The logger.</value>
protected ILogger Logger { get; set; }
+
protected ILogManager LogManager { get; set; }
/// <summary>
@@ -41,6 +42,7 @@ namespace MediaBrowser.Controller.Providers
/// The true task result
/// </summary>
protected static readonly Task<bool> TrueTaskResult = Task.FromResult(true);
+
protected static readonly Task<bool> FalseTaskResult = Task.FromResult(false);
protected static readonly SemaphoreSlim XmlParsingResourcePool = new SemaphoreSlim(5, 5);
@@ -132,7 +134,8 @@ namespace MediaBrowser.Controller.Providers
/// <param name="providerVersion">The provider version.</param>
/// <param name="status">The status.</param>
/// <exception cref="System.ArgumentNullException">item</exception>
- public virtual void SetLastRefreshed(BaseItem item, DateTime value, string providerVersion, ProviderRefreshStatus status = ProviderRefreshStatus.Success)
+ public virtual void SetLastRefreshed(BaseItem item, DateTime value, string providerVersion,
+ ProviderRefreshStatus status = ProviderRefreshStatus.Success)
{
if (item == null)
{
@@ -172,7 +175,8 @@ namespace MediaBrowser.Controller.Providers
/// <param name="item">The item.</param>
/// <param name="value">The value.</param>
/// <param name="status">The status.</param>
- public void SetLastRefreshed(BaseItem item, DateTime value, ProviderRefreshStatus status = ProviderRefreshStatus.Success)
+ public void SetLastRefreshed(BaseItem item, DateTime value,
+ ProviderRefreshStatus status = ProviderRefreshStatus.Success)
{
SetLastRefreshed(item, value, ProviderVersion, status);
}
@@ -238,7 +242,8 @@ namespace MediaBrowser.Controller.Providers
return true;
}
- if (RefreshOnFileSystemStampChange && item.LocationType == LocationType.FileSystem && HasFileSystemStampChanged(item, providerInfo))
+ if (RefreshOnFileSystemStampChange && item.LocationType == LocationType.FileSystem &&
+ HasFileSystemStampChanged(item, providerInfo))
{
return true;
}
@@ -349,21 +354,23 @@ namespace MediaBrowser.Controller.Providers
}
private Dictionary<string, string> _fileStampExtensionsDictionary;
+
private Dictionary<string, string> FileStampExtensionsDictionary
{
get
{
return _fileStampExtensionsDictionary ??
(_fileStampExtensionsDictionary =
- FilestampExtensions.ToDictionary(i => i, StringComparer.OrdinalIgnoreCase));
+ FilestampExtensions.ToDictionary(i => i, StringComparer.OrdinalIgnoreCase));
}
}
+
/// <summary>
/// Gets the file system stamp.
/// </summary>
/// <param name="item">The item.</param>
/// <returns>Guid.</returns>
- private Guid GetFileSystemStamp(BaseItem item)
+ protected virtual Guid GetFileSystemStamp(BaseItem item)
{
// If there's no path or the item is a file, there's nothing to do
if (item.LocationType != LocationType.FileSystem)
@@ -404,6 +411,20 @@ namespace MediaBrowser.Controller.Providers
private static readonly Dictionary<string, string> FoldersToMonitor = new[] { "extrafanart", "extrathumbs" }
.ToDictionary(i => i, StringComparer.OrdinalIgnoreCase);
+ protected Guid GetFileSystemStamp(IEnumerable<FileSystemInfo> files)
+ {
+ var sb = new StringBuilder();
+
+ var extensions = FileStampExtensionsDictionary;
+ var numExtensions = FilestampExtensions.Length;
+
+ // Record the name of each file
+ // Need to sort these because accoring to msdn docs, our i/o methods are not guaranteed in any order
+ AddFiles(sb, files, extensions, numExtensions);
+
+ return sb.ToString().GetMD5();
+ }
+
/// <summary>
/// Adds the files.
/// </summary>
@@ -424,7 +445,7 @@ namespace MediaBrowser.Controller.Providers
{
sb.Append(file.Name);
- var children = ((DirectoryInfo) file).EnumerateFiles("*", SearchOption.TopDirectoryOnly).ToList();
+ var children = ((DirectoryInfo)file).EnumerateFiles("*", SearchOption.TopDirectoryOnly).ToList();
AddFiles(sb, children, extensions, numExtensions);
}
}