mirror of
https://github.com/jellyfin/jellyfin.git
synced 2026-06-08 00:39:25 +01:00
update windows ffmpeg
This commit is contained in:
@@ -310,6 +310,11 @@ namespace MediaBrowser.Providers.Manager
|
||||
return true;
|
||||
}
|
||||
|
||||
if (item is MusicVideo)
|
||||
{
|
||||
return true;
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
@@ -390,7 +395,6 @@ namespace MediaBrowser.Providers.Manager
|
||||
return _cachedTask;
|
||||
}
|
||||
|
||||
private readonly Task<ItemUpdateType> _cachedResult = Task.FromResult(ItemUpdateType.None);
|
||||
/// <summary>
|
||||
/// Befores the save.
|
||||
/// </summary>
|
||||
@@ -398,9 +402,58 @@ namespace MediaBrowser.Providers.Manager
|
||||
/// <param name="isFullRefresh">if set to <c>true</c> [is full refresh].</param>
|
||||
/// <param name="currentUpdateType">Type of the current update.</param>
|
||||
/// <returns>ItemUpdateType.</returns>
|
||||
protected virtual Task<ItemUpdateType> BeforeSave(TItemType item, bool isFullRefresh, ItemUpdateType currentUpdateType)
|
||||
protected virtual async Task<ItemUpdateType> BeforeSave(TItemType item, bool isFullRefresh, ItemUpdateType currentUpdateType)
|
||||
{
|
||||
return _cachedResult;
|
||||
var updateType = ItemUpdateType.None;
|
||||
|
||||
updateType |= SaveCumulativeRunTimeTicks(item, isFullRefresh, currentUpdateType);
|
||||
updateType |= SaveDateLastMediaAdded(item, isFullRefresh, currentUpdateType);
|
||||
|
||||
return updateType;
|
||||
}
|
||||
|
||||
private ItemUpdateType SaveCumulativeRunTimeTicks(TItemType item, bool isFullRefresh, ItemUpdateType currentUpdateType)
|
||||
{
|
||||
var updateType = ItemUpdateType.None;
|
||||
|
||||
if (isFullRefresh || currentUpdateType > ItemUpdateType.None)
|
||||
{
|
||||
var folder = item as Folder;
|
||||
if (folder != null && folder.SupportsCumulativeRunTimeTicks)
|
||||
{
|
||||
var ticks = folder.GetRecursiveChildren(i => !i.IsFolder).Select(i => i.RunTimeTicks ?? 0).Sum();
|
||||
|
||||
if (!folder.RunTimeTicks.HasValue || folder.RunTimeTicks.Value != ticks)
|
||||
{
|
||||
folder.RunTimeTicks = ticks;
|
||||
updateType = ItemUpdateType.MetadataEdit;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return updateType;
|
||||
}
|
||||
|
||||
private ItemUpdateType SaveDateLastMediaAdded(TItemType item, bool isFullRefresh, ItemUpdateType currentUpdateType)
|
||||
{
|
||||
var updateType = ItemUpdateType.None;
|
||||
|
||||
if (isFullRefresh || currentUpdateType > ItemUpdateType.None)
|
||||
{
|
||||
var folder = item as Folder;
|
||||
if (folder != null && folder.SupportsDateLastMediaAdded)
|
||||
{
|
||||
var date = folder.GetRecursiveChildren(i => !i.IsFolder).Select(i => i.DateCreated).Max();
|
||||
|
||||
if (!folder.DateLastMediaAdded.HasValue || folder.DateLastMediaAdded.Value != date)
|
||||
{
|
||||
folder.DateLastMediaAdded = date;
|
||||
updateType = ItemUpdateType.MetadataEdit;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return updateType;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
@@ -420,7 +473,7 @@ namespace MediaBrowser.Providers.Manager
|
||||
: status.DateLastMetadataRefresh ?? default(DateTime);
|
||||
|
||||
// Run all if either of these flags are true
|
||||
var runAllProviders = options.ReplaceAllMetadata || options.MetadataRefreshMode == MetadataRefreshMode.FullRefresh || dateLastRefresh == default(DateTime);
|
||||
var runAllProviders = options.ReplaceAllMetadata || options.MetadataRefreshMode == MetadataRefreshMode.FullRefresh || dateLastRefresh == default(DateTime) || item.RequiresRefresh();
|
||||
|
||||
if (!runAllProviders)
|
||||
{
|
||||
|
||||
@@ -62,12 +62,25 @@ namespace MediaBrowser.Providers.Music
|
||||
|
||||
private IEnumerable<RemoteSearchResult> GetResultsFromResponse(XmlDocument doc)
|
||||
{
|
||||
var ns = new XmlNamespaceManager(doc.NameTable);
|
||||
ns.AddNamespace("mb", "https://musicbrainz.org/ns/mmd-2.0#");
|
||||
//var ns = new XmlNamespaceManager(doc.NameTable);
|
||||
//ns.AddNamespace("mb", "https://musicbrainz.org/ns/mmd-2.0#");
|
||||
|
||||
var list = new List<RemoteSearchResult>();
|
||||
|
||||
var nodes = doc.SelectNodes("//mb:artist-list/mb:artist", ns);
|
||||
var docElem = doc.DocumentElement;
|
||||
|
||||
if (docElem == null)
|
||||
{
|
||||
return list;
|
||||
}
|
||||
|
||||
var artistList = docElem.FirstChild;
|
||||
if (artistList == null)
|
||||
{
|
||||
return list;
|
||||
}
|
||||
|
||||
var nodes = artistList.ChildNodes;
|
||||
|
||||
if (nodes != null)
|
||||
{
|
||||
@@ -79,11 +92,13 @@ namespace MediaBrowser.Providers.Music
|
||||
|
||||
string mbzId = node.Attributes["id"].Value;
|
||||
|
||||
var nameNode = node.SelectSingleNode("//mb:name", ns);
|
||||
|
||||
if (nameNode != null)
|
||||
foreach (var child in node.ChildNodes.Cast<XmlNode>())
|
||||
{
|
||||
name = nameNode.InnerText;
|
||||
if (string.Equals(child.Name, "name", StringComparison.OrdinalIgnoreCase))
|
||||
{
|
||||
name = node.InnerText;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
if (!string.IsNullOrWhiteSpace(mbzId) && !string.IsNullOrWhiteSpace(name))
|
||||
|
||||
Reference in New Issue
Block a user