aboutsummaryrefslogtreecommitdiff
path: root/MediaBrowser.Providers/Manager
diff options
context:
space:
mode:
authorLogicalPhallacy <44458166+LogicalPhallacy@users.noreply.github.com>2019-01-23 00:31:35 -0800
committerGitHub <noreply@github.com>2019-01-23 00:31:35 -0800
commit404bd04cbc17dc8c8bf4a5c9aa3ca9c5cd85aa68 (patch)
tree3d267c6ceef9439a034c113095e10e4d619e7c70 /MediaBrowser.Providers/Manager
parent8ff89fdc0c30f595a171ffc550f907ef22b6212a (diff)
parente05e002b8bb4d13eb2b80b56a0aad8903ddb701e (diff)
Merge pull request #8 from jellyfin/master
rebase to latest master
Diffstat (limited to 'MediaBrowser.Providers/Manager')
-rw-r--r--MediaBrowser.Providers/Manager/GenericPriorityQueue.cs44
-rw-r--r--MediaBrowser.Providers/Manager/GenericPriorityQueueNode.cs5
-rw-r--r--MediaBrowser.Providers/Manager/IFixedSizePriorityQueue.cs7
-rw-r--r--MediaBrowser.Providers/Manager/IPriorityQueue.cs8
-rw-r--r--MediaBrowser.Providers/Manager/ImageSaver.cs38
-rw-r--r--MediaBrowser.Providers/Manager/ItemImageProvider.cs27
-rw-r--r--MediaBrowser.Providers/Manager/MetadataService.cs61
-rw-r--r--MediaBrowser.Providers/Manager/ProviderManager.cs12
-rw-r--r--MediaBrowser.Providers/Manager/ProviderUtils.cs12
-rw-r--r--MediaBrowser.Providers/Manager/SimplePriorityQueue.cs17
10 files changed, 82 insertions, 149 deletions
diff --git a/MediaBrowser.Providers/Manager/GenericPriorityQueue.cs b/MediaBrowser.Providers/Manager/GenericPriorityQueue.cs
index 0e6c073577..b87f688e16 100644
--- a/MediaBrowser.Providers/Manager/GenericPriorityQueue.cs
+++ b/MediaBrowser.Providers/Manager/GenericPriorityQueue.cs
@@ -1,9 +1,7 @@
-using System;
+using System;
using System.Collections;
using System.Collections.Generic;
using System.Runtime.CompilerServices;
-using System.Text;
-using System.Threading.Tasks;
namespace Priority_Queue
{
@@ -43,25 +41,13 @@ namespace Priority_Queue
/// Returns the number of nodes in the queue.
/// O(1)
/// </summary>
- public int Count
- {
- get
- {
- return _numNodes;
- }
- }
+ public int Count => _numNodes;
/// <summary>
/// Returns the maximum number of items that can be enqueued at once in this queue. Once you hit this number (ie. once Count == MaxSize),
/// attempting to enqueue another item will cause undefined behavior. O(1)
/// </summary>
- public int MaxSize
- {
- get
- {
- return _nodes.Length - 1;
- }
- }
+ public int MaxSize => _nodes.Length - 1;
/// <summary>
/// Removes every node from the queue.
@@ -83,7 +69,7 @@ namespace Priority_Queue
#if DEBUG
if (node == null)
{
- throw new ArgumentNullException("node");
+ throw new ArgumentNullException(nameof(node));
}
if (node.QueueIndex < 0 || node.QueueIndex >= _nodes.Length)
{
@@ -106,7 +92,7 @@ namespace Priority_Queue
#if DEBUG
if (node == null)
{
- throw new ArgumentNullException("node");
+ throw new ArgumentNullException(nameof(node));
}
if (_numNodes >= _nodes.Length - 1)
{
@@ -146,7 +132,7 @@ namespace Priority_Queue
int parent = node.QueueIndex / 2;
while (parent >= 1)
{
- TItem parentNode = _nodes[parent];
+ var parentNode = _nodes[parent];
if (HasHigherPriority(parentNode, node))
break;
@@ -177,7 +163,7 @@ namespace Priority_Queue
break;
}
- TItem childLeft = _nodes[childLeftIndex];
+ var childLeft = _nodes[childLeftIndex];
if (HasHigherPriority(childLeft, newParent))
{
newParent = childLeft;
@@ -187,7 +173,7 @@ namespace Priority_Queue
int childRightIndex = childLeftIndex + 1;
if (childRightIndex <= _numNodes)
{
- TItem childRight = _nodes[childRightIndex];
+ var childRight = _nodes[childRightIndex];
if (HasHigherPriority(childRight, newParent))
{
newParent = childRight;
@@ -248,7 +234,7 @@ namespace Priority_Queue
}
#endif
- TItem returnMe = _nodes[1];
+ var returnMe = _nodes[1];
Remove(returnMe);
item = returnMe;
return true;
@@ -303,7 +289,7 @@ namespace Priority_Queue
}
/// <summary>
- /// This method must be called on a node every time its priority changes while it is in the queue.
+ /// This method must be called on a node every time its priority changes while it is in the queue.
/// <b>Forgetting to call this method will result in a corrupted queue!</b>
/// Calling this method on a node not in the queue results in undefined behavior
/// O(log n)
@@ -314,7 +300,7 @@ namespace Priority_Queue
#if DEBUG
if (node == null)
{
- throw new ArgumentNullException("node");
+ throw new ArgumentNullException(nameof(node));
}
if (!Contains(node))
{
@@ -330,7 +316,7 @@ namespace Priority_Queue
{
//Bubble the updated node up or down as appropriate
int parentIndex = node.QueueIndex / 2;
- TItem parentNode = _nodes[parentIndex];
+ var parentNode = _nodes[parentIndex];
if (parentIndex > 0 && HasHigherPriority(node, parentNode))
{
@@ -344,7 +330,7 @@ namespace Priority_Queue
}
/// <summary>
- /// Removes a node from the queue. The node does not need to be the head of the queue.
+ /// Removes a node from the queue. The node does not need to be the head of the queue.
/// If the node is not in the queue, the result is undefined. If unsure, check Contains() first
/// O(log n)
/// </summary>
@@ -353,7 +339,7 @@ namespace Priority_Queue
#if DEBUG
if (node == null)
{
- throw new ArgumentNullException("node");
+ throw new ArgumentNullException(nameof(node));
}
if (!Contains(node))
{
@@ -370,7 +356,7 @@ namespace Priority_Queue
}
//Swap the node with the last node
- TItem formerLastNode = _nodes[_numNodes];
+ var formerLastNode = _nodes[_numNodes];
Swap(node, formerLastNode);
_nodes[_numNodes] = null;
_numNodes--;
diff --git a/MediaBrowser.Providers/Manager/GenericPriorityQueueNode.cs b/MediaBrowser.Providers/Manager/GenericPriorityQueueNode.cs
index ec908095f9..b45ae0fd82 100644
--- a/MediaBrowser.Providers/Manager/GenericPriorityQueueNode.cs
+++ b/MediaBrowser.Providers/Manager/GenericPriorityQueueNode.cs
@@ -1,8 +1,3 @@
-using System;
-using System.Collections.Generic;
-using System.Text;
-using System.Threading.Tasks;
-
namespace Priority_Queue
{
/// Credit: https://github.com/BlueRaja/High-Speed-Priority-Queue-for-C-Sharp
diff --git a/MediaBrowser.Providers/Manager/IFixedSizePriorityQueue.cs b/MediaBrowser.Providers/Manager/IFixedSizePriorityQueue.cs
index a49d42acaa..509d98e426 100644
--- a/MediaBrowser.Providers/Manager/IFixedSizePriorityQueue.cs
+++ b/MediaBrowser.Providers/Manager/IFixedSizePriorityQueue.cs
@@ -1,7 +1,4 @@
-using System;
-using System.Collections.Generic;
-using System.Text;
-using System.Threading.Tasks;
+using System;
namespace Priority_Queue
{
@@ -24,4 +21,4 @@ namespace Priority_Queue
/// </summary>
int MaxSize { get; }
}
-} \ No newline at end of file
+}
diff --git a/MediaBrowser.Providers/Manager/IPriorityQueue.cs b/MediaBrowser.Providers/Manager/IPriorityQueue.cs
index 23f08a13e2..dc319a7f8d 100644
--- a/MediaBrowser.Providers/Manager/IPriorityQueue.cs
+++ b/MediaBrowser.Providers/Manager/IPriorityQueue.cs
@@ -1,7 +1,5 @@
-using System;
+using System;
using System.Collections.Generic;
-using System.Text;
-using System.Threading.Tasks;
namespace Priority_Queue
{
@@ -36,12 +34,12 @@ namespace Priority_Queue
bool Contains(TItem node);
/// <summary>
- /// Removes a node from the queue. The node does not need to be the head of the queue.
+ /// Removes a node from the queue. The node does not need to be the head of the queue.
/// </summary>
void Remove(TItem node);
/// <summary>
- /// Call this method to change the priority of a node.
+ /// Call this method to change the priority of a node.
/// </summary>
void UpdatePriority(TItem node, TPriority priority);
diff --git a/MediaBrowser.Providers/Manager/ImageSaver.cs b/MediaBrowser.Providers/Manager/ImageSaver.cs
index 6790f9b331..d0d00ef127 100644
--- a/MediaBrowser.Providers/Manager/ImageSaver.cs
+++ b/MediaBrowser.Providers/Manager/ImageSaver.cs
@@ -1,14 +1,3 @@
-using MediaBrowser.Common.Configuration;
-
-using MediaBrowser.Controller.Configuration;
-using MediaBrowser.Controller.Entities;
-using MediaBrowser.Controller.Entities.Audio;
-using MediaBrowser.Controller.Entities.TV;
-using MediaBrowser.Controller.Library;
-using MediaBrowser.Model.Configuration;
-using MediaBrowser.Model.Entities;
-using Microsoft.Extensions.Logging;
-using MediaBrowser.Model.Net;
using System;
using System.Collections.Generic;
using System.Globalization;
@@ -16,8 +5,17 @@ using System.IO;
using System.Linq;
using System.Threading;
using System.Threading.Tasks;
+using MediaBrowser.Common.Configuration;
+using MediaBrowser.Controller.Configuration;
+using MediaBrowser.Controller.Entities;
+using MediaBrowser.Controller.Entities.Audio;
+using MediaBrowser.Controller.Entities.TV;
+using MediaBrowser.Controller.Library;
+using MediaBrowser.Model.Configuration;
+using MediaBrowser.Model.Entities;
using MediaBrowser.Model.IO;
-using MediaBrowser.Model.Extensions;
+using MediaBrowser.Model.Net;
+using Microsoft.Extensions.Logging;
namespace MediaBrowser.Providers.Manager
{
@@ -65,7 +63,7 @@ namespace MediaBrowser.Providers.Manager
/// <param name="imageIndex">Index of the image.</param>
/// <param name="cancellationToken">The cancellation token.</param>
/// <returns>Task.</returns>
- /// <exception cref="System.ArgumentNullException">mimeType</exception>
+ /// <exception cref="ArgumentNullException">mimeType</exception>
public Task SaveImage(BaseItem item, Stream source, string mimeType, ImageType type, int? imageIndex, CancellationToken cancellationToken)
{
return SaveImage(item, source, mimeType, type, imageIndex, null, cancellationToken);
@@ -75,7 +73,7 @@ namespace MediaBrowser.Providers.Manager
{
if (string.IsNullOrEmpty(mimeType))
{
- throw new ArgumentNullException("mimeType");
+ throw new ArgumentNullException(nameof(mimeType));
}
var saveLocally = item.SupportsLocalMetadata && item.IsSaveLocalMetadataEnabled() && !item.ExtraType.HasValue && !(item is Audio);
@@ -174,7 +172,7 @@ namespace MediaBrowser.Providers.Manager
}
catch (FileNotFoundException)
{
-
+
}
finally
{
@@ -301,7 +299,7 @@ namespace MediaBrowser.Providers.Manager
/// <param name="type">The type.</param>
/// <param name="imageIndex">Index of the image.</param>
/// <returns>System.String.</returns>
- /// <exception cref="System.ArgumentNullException">
+ /// <exception cref="ArgumentNullException">
/// imageIndex
/// or
/// imageIndex
@@ -318,7 +316,7 @@ namespace MediaBrowser.Providers.Manager
/// <param name="type">The type.</param>
/// <param name="imageIndex">Index of the image.</param>
/// <param name="path">The path.</param>
- /// <exception cref="System.ArgumentNullException">imageIndex
+ /// <exception cref="ArgumentNullException">imageIndex
/// or
/// imageIndex</exception>
private void SetImagePath(BaseItem item, ImageType type, int? imageIndex, string path)
@@ -335,7 +333,7 @@ namespace MediaBrowser.Providers.Manager
/// <param name="mimeType">Type of the MIME.</param>
/// <param name="saveLocally">if set to <c>true</c> [save locally].</param>
/// <returns>System.String.</returns>
- /// <exception cref="System.ArgumentNullException">
+ /// <exception cref="ArgumentNullException">
/// imageIndex
/// or
/// imageIndex
@@ -492,7 +490,7 @@ namespace MediaBrowser.Providers.Manager
/// <param name="imageIndex">Index of the image.</param>
/// <param name="mimeType">Type of the MIME.</param>
/// <returns>IEnumerable{System.String}.</returns>
- /// <exception cref="System.ArgumentNullException">imageIndex</exception>
+ /// <exception cref="ArgumentNullException">imageIndex</exception>
private string[] GetCompatibleSavePaths(BaseItem item, ImageType type, int? imageIndex, string mimeType)
{
var season = item as Season;
@@ -504,7 +502,7 @@ namespace MediaBrowser.Providers.Manager
{
if (!imageIndex.HasValue)
{
- throw new ArgumentNullException("imageIndex");
+ throw new ArgumentNullException(nameof(imageIndex));
}
if (imageIndex.Value == 0)
diff --git a/MediaBrowser.Providers/Manager/ItemImageProvider.cs b/MediaBrowser.Providers/Manager/ItemImageProvider.cs
index fc30374b3a..c2e53ae6c4 100644
--- a/MediaBrowser.Providers/Manager/ItemImageProvider.cs
+++ b/MediaBrowser.Providers/Manager/ItemImageProvider.cs
@@ -1,13 +1,3 @@
-using MediaBrowser.Common.Extensions;
-using MediaBrowser.Controller.Configuration;
-using MediaBrowser.Controller.Entities;
-using MediaBrowser.Controller.Library;
-using MediaBrowser.Controller.Providers;
-using MediaBrowser.Model.Configuration;
-using MediaBrowser.Model.Entities;
-using Microsoft.Extensions.Logging;
-using MediaBrowser.Model.Net;
-using MediaBrowser.Model.Providers;
using System;
using System.Collections.Generic;
using System.IO;
@@ -15,16 +5,19 @@ using System.Linq;
using System.Net;
using System.Threading;
using System.Threading.Tasks;
-
-using MediaBrowser.Model.IO;
+using MediaBrowser.Controller.Configuration;
+using MediaBrowser.Controller.Entities;
using MediaBrowser.Controller.Entities.Audio;
-using MediaBrowser.Controller.Entities.Movies;
-using MediaBrowser.Controller.Entities.TV;
-using MediaBrowser.Controller.IO;
+using MediaBrowser.Controller.Library;
using MediaBrowser.Controller.LiveTv;
+using MediaBrowser.Controller.Providers;
+using MediaBrowser.Model.Configuration;
+using MediaBrowser.Model.Entities;
+using MediaBrowser.Model.IO;
using MediaBrowser.Model.MediaInfo;
-using MediaBrowser.Model.Extensions;
-using MediaBrowser.Controller.Channels;
+using MediaBrowser.Model.Net;
+using MediaBrowser.Model.Providers;
+using Microsoft.Extensions.Logging;
namespace MediaBrowser.Providers.Manager
{
diff --git a/MediaBrowser.Providers/Manager/MetadataService.cs b/MediaBrowser.Providers/Manager/MetadataService.cs
index e26004923d..1972ad290c 100644
--- a/MediaBrowser.Providers/Manager/MetadataService.cs
+++ b/MediaBrowser.Providers/Manager/MetadataService.cs
@@ -1,19 +1,17 @@
-using MediaBrowser.Common.Extensions;
-using MediaBrowser.Controller.Configuration;
-using MediaBrowser.Controller.Entities;
-using MediaBrowser.Controller.Library;
-using MediaBrowser.Controller.Providers;
-using MediaBrowser.Model.Entities;
-using Microsoft.Extensions.Logging;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading;
using System.Threading.Tasks;
-using MediaBrowser.Model.IO;
+using MediaBrowser.Controller.Configuration;
+using MediaBrowser.Controller.Entities;
+using MediaBrowser.Controller.Library;
+using MediaBrowser.Controller.Providers;
using MediaBrowser.Model.Configuration;
+using MediaBrowser.Model.Entities;
+using MediaBrowser.Model.IO;
using MediaBrowser.Model.Providers;
-using MediaBrowser.Providers.MediaInfo;
+using Microsoft.Extensions.Logging;
namespace MediaBrowser.Providers.Manager
{
@@ -417,7 +415,7 @@ namespace MediaBrowser.Providers.Manager
var folder = item as Folder;
if (folder != null && folder.SupportsDateLastMediaAdded)
{
- DateTime dateLastMediaAdded = DateTime.MinValue;
+ var dateLastMediaAdded = DateTime.MinValue;
var any = false;
foreach (var child in children)
@@ -443,34 +441,13 @@ namespace MediaBrowser.Providers.Manager
return updateType;
}
- protected virtual bool EnableUpdatingPremiereDateFromChildren
- {
- get
- {
- return false;
- }
- }
- protected virtual bool EnableUpdatingGenresFromChildren
- {
- get
- {
- return false;
- }
- }
- protected virtual bool EnableUpdatingStudiosFromChildren
- {
- get
- {
- return false;
- }
- }
- protected virtual bool EnableUpdatingOfficialRatingFromChildren
- {
- get
- {
- return false;
- }
- }
+ protected virtual bool EnableUpdatingPremiereDateFromChildren => false;
+
+ protected virtual bool EnableUpdatingGenresFromChildren => false;
+
+ protected virtual bool EnableUpdatingStudiosFromChildren => false;
+
+ protected virtual bool EnableUpdatingOfficialRatingFromChildren => false;
private ItemUpdateType UpdatePremiereDate(TItemType item, IList<BaseItem> children)
{
@@ -928,13 +905,7 @@ namespace MediaBrowser.Providers.Manager
bool replaceData,
bool mergeMetadataSettings);
- public virtual int Order
- {
- get
- {
- return 0;
- }
- }
+ public virtual int Order => 0;
private bool HasChanged(BaseItem item, IHasItemChangeMonitor changeMonitor, IDirectoryService directoryService)
{
diff --git a/MediaBrowser.Providers/Manager/ProviderManager.cs b/MediaBrowser.Providers/Manager/ProviderManager.cs
index 8eed5e6266..65364ad679 100644
--- a/MediaBrowser.Providers/Manager/ProviderManager.cs
+++ b/MediaBrowser.Providers/Manager/ProviderManager.cs
@@ -1,4 +1,4 @@
-using System;
+using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
@@ -156,7 +156,7 @@ namespace MediaBrowser.Providers.Manager
}).ConfigureAwait(false))
{
- // Workaround for tvheadend channel icons
+ // Workaround for tvheadend channel icons
// TODO: Isolate this hack into the tvh plugin
if (string.IsNullOrEmpty(response.ContentType))
{
@@ -179,7 +179,7 @@ namespace MediaBrowser.Providers.Manager
{
if (string.IsNullOrWhiteSpace(source))
{
- throw new ArgumentNullException("source");
+ throw new ArgumentNullException(nameof(source));
}
var fileStream = _fileSystem.GetFileStream(source, FileOpenMode.Open, FileAccessMode.Read, FileShareMode.ReadWrite, true);
@@ -968,8 +968,7 @@ namespace MediaBrowser.Providers.Manager
{
lock (_activeRefreshes)
{
- double value;
- if (_activeRefreshes.TryGetValue(id, out value))
+ if (_activeRefreshes.TryGetValue(id, out double value))
{
return value;
}
@@ -1029,7 +1028,6 @@ namespace MediaBrowser.Providers.Manager
private async Task StartProcessingRefreshQueue()
{
- Tuple<Guid, MetadataRefreshOptions> refreshItem;
var libraryManager = _libraryManagerFactory();
if (_disposed)
@@ -1039,7 +1037,7 @@ namespace MediaBrowser.Providers.Manager
var cancellationToken = _disposeCancellationTokenSource.Token;
- while (_refreshQueue.TryDequeue(out refreshItem))
+ while (_refreshQueue.TryDequeue(out Tuple<Guid, MetadataRefreshOptions> refreshItem))
{
if (_disposed)
{
diff --git a/MediaBrowser.Providers/Manager/ProviderUtils.cs b/MediaBrowser.Providers/Manager/ProviderUtils.cs
index 3a961fe0ec..2031449d99 100644
--- a/MediaBrowser.Providers/Manager/ProviderUtils.cs
+++ b/MediaBrowser.Providers/Manager/ProviderUtils.cs
@@ -1,11 +1,11 @@
-using MediaBrowser.Controller.Entities;
-using MediaBrowser.Controller.Entities.Audio;
-using MediaBrowser.Controller.Providers;
-using MediaBrowser.Model.Entities;
using System;
using System.Collections.Generic;
using System.Linq;
+using MediaBrowser.Controller.Entities;
+using MediaBrowser.Controller.Entities.Audio;
using MediaBrowser.Controller.Extensions;
+using MediaBrowser.Controller.Providers;
+using MediaBrowser.Model.Entities;
namespace MediaBrowser.Providers.Manager
{
@@ -23,11 +23,11 @@ namespace MediaBrowser.Providers.Manager
if (source == null)
{
- throw new ArgumentNullException("source");
+ throw new ArgumentNullException(nameof(source));
}
if (target == null)
{
- throw new ArgumentNullException("target");
+ throw new ArgumentNullException(nameof(target));
}
if (!lockedFields.Contains(MetadataFields.Name))
diff --git a/MediaBrowser.Providers/Manager/SimplePriorityQueue.cs b/MediaBrowser.Providers/Manager/SimplePriorityQueue.cs
index 879ae1dca4..d064312cfa 100644
--- a/MediaBrowser.Providers/Manager/SimplePriorityQueue.cs
+++ b/MediaBrowser.Providers/Manager/SimplePriorityQueue.cs
@@ -1,8 +1,6 @@
-using System;
+using System;
using System.Collections;
using System.Collections.Generic;
-using System.Text;
-using System.Threading.Tasks;
namespace Priority_Queue
{
@@ -135,8 +133,7 @@ namespace Priority_Queue
return false;
}
- SimpleNode node;
- if (_queue.TryDequeue(out node))
+ if (_queue.TryDequeue(out SimpleNode node))
{
item = node.Data;
return true;
@@ -157,7 +154,7 @@ namespace Priority_Queue
{
lock (_queue)
{
- SimpleNode node = new SimpleNode(item);
+ var node = new SimpleNode(item);
if (_queue.Count == _queue.MaxSize)
{
_queue.Resize(_queue.MaxSize * 2 + 1);
@@ -167,9 +164,9 @@ namespace Priority_Queue
}
/// <summary>
- /// Removes an item from the queue. The item does not need to be the head of the queue.
+ /// Removes an item from the queue. The item does not need to be the head of the queue.
/// If the item is not in the queue, an exception is thrown. If unsure, check Contains() first.
- /// If multiple copies of the item are enqueued, only the first one is removed.
+ /// If multiple copies of the item are enqueued, only the first one is removed.
/// O(n)
/// </summary>
public void Remove(TItem item)
@@ -213,7 +210,7 @@ namespace Priority_Queue
public IEnumerator<TItem> GetEnumerator()
{
- List<TItem> queueData = new List<TItem>();
+ var queueData = new List<TItem>();
lock (_queue)
{
//Copy to a separate list because we don't want to 'yield return' inside a lock
@@ -247,4 +244,4 @@ namespace Priority_Queue
/// </summary>
/// <typeparam name="TItem">The type to enqueue</typeparam>
public class SimplePriorityQueue<TItem> : SimplePriorityQueue<TItem, float> { }
-} \ No newline at end of file
+}