mirror of
https://github.com/jellyfin/jellyfin.git
synced 2026-06-12 02:30:23 +01:00
enable user device access
This commit is contained in:
@@ -6,7 +6,6 @@ using MediaBrowser.Controller.Entities.Audio;
|
||||
using MediaBrowser.Controller.MediaEncoding;
|
||||
using MediaBrowser.Controller.Providers;
|
||||
using MediaBrowser.Model.Entities;
|
||||
using System;
|
||||
using System.Collections.Concurrent;
|
||||
using System.Collections.Generic;
|
||||
using System.IO;
|
||||
@@ -132,7 +131,9 @@ namespace MediaBrowser.Providers.MediaInfo
|
||||
|
||||
public bool Supports(IHasImages item)
|
||||
{
|
||||
return item is Audio;
|
||||
var audio = item as Audio;
|
||||
|
||||
return item.LocationType == LocationType.FileSystem && audio != null && !audio.IsArchive;
|
||||
}
|
||||
|
||||
public bool HasChanged(IHasMetadata item, MetadataStatus status, IDirectoryService directoryService)
|
||||
|
||||
@@ -38,6 +38,13 @@ namespace MediaBrowser.Providers.MediaInfo
|
||||
public async Task<ItemUpdateType> Probe<T>(T item, CancellationToken cancellationToken)
|
||||
where T : Audio
|
||||
{
|
||||
if (item.IsArchive)
|
||||
{
|
||||
var ext = Path.GetExtension(item.Path) ?? string.Empty;
|
||||
item.Container = ext.TrimStart('.');
|
||||
return ItemUpdateType.MetadataImport;
|
||||
}
|
||||
|
||||
var result = await GetMediaInfo(item, cancellationToken).ConfigureAwait(false);
|
||||
|
||||
cancellationToken.ThrowIfCancellationRequested();
|
||||
@@ -58,8 +65,8 @@ namespace MediaBrowser.Providers.MediaInfo
|
||||
cancellationToken.ThrowIfCancellationRequested();
|
||||
|
||||
var idString = item.Id.ToString("N");
|
||||
var cachePath = Path.Combine(_appPaths.CachePath,
|
||||
"ffprobe-audio",
|
||||
var cachePath = Path.Combine(_appPaths.CachePath,
|
||||
"ffprobe-audio",
|
||||
idString.Substring(0, 2), idString, "v" + SchemaVersion + _mediaEncoder.Version + item.DateModified.Ticks.ToString(_usCulture) + ".json");
|
||||
|
||||
try
|
||||
@@ -132,7 +139,7 @@ namespace MediaBrowser.Providers.MediaInfo
|
||||
|
||||
if (!string.IsNullOrEmpty(data.format.size))
|
||||
{
|
||||
audio.Size = long.Parse(data.format.size , _usCulture);
|
||||
audio.Size = long.Parse(data.format.size, _usCulture);
|
||||
}
|
||||
else
|
||||
{
|
||||
@@ -217,9 +224,9 @@ namespace MediaBrowser.Providers.MediaInfo
|
||||
audio.ProductionYear = FFProbeHelpers.GetDictionaryNumericValue(tags, "date");
|
||||
|
||||
// Several different forms of retaildate
|
||||
audio.PremiereDate = FFProbeHelpers.GetDictionaryDateTime(tags, "retaildate") ??
|
||||
FFProbeHelpers.GetDictionaryDateTime(tags, "retail date") ??
|
||||
FFProbeHelpers.GetDictionaryDateTime(tags, "retail_date") ??
|
||||
audio.PremiereDate = FFProbeHelpers.GetDictionaryDateTime(tags, "retaildate") ??
|
||||
FFProbeHelpers.GetDictionaryDateTime(tags, "retail date") ??
|
||||
FFProbeHelpers.GetDictionaryDateTime(tags, "retail_date") ??
|
||||
FFProbeHelpers.GetDictionaryDateTime(tags, "date");
|
||||
|
||||
// If we don't have a ProductionYear try and get it from PremiereDate
|
||||
@@ -261,8 +268,8 @@ namespace MediaBrowser.Providers.MediaInfo
|
||||
{
|
||||
// Only use the comma as a delimeter if there are no slashes or pipes.
|
||||
// We want to be careful not to split names that have commas in them
|
||||
var delimeter = !allowCommaDelimiter || _nameDelimiters.Any(i => val.IndexOf(i) != -1) ?
|
||||
_nameDelimiters :
|
||||
var delimeter = !allowCommaDelimiter || _nameDelimiters.Any(i => val.IndexOf(i) != -1) ?
|
||||
_nameDelimiters :
|
||||
new[] { ',' };
|
||||
|
||||
return val.Split(delimeter, StringSplitOptions.RemoveEmptyEntries)
|
||||
|
||||
@@ -71,6 +71,13 @@ namespace MediaBrowser.Providers.MediaInfo
|
||||
CancellationToken cancellationToken)
|
||||
where T : Video
|
||||
{
|
||||
if (item.IsArchive)
|
||||
{
|
||||
var ext = Path.GetExtension(item.Path) ?? string.Empty;
|
||||
item.Container = ext.TrimStart('.');
|
||||
return ItemUpdateType.MetadataImport;
|
||||
}
|
||||
|
||||
var isoMount = await MountIsoIfNeeded(item, cancellationToken).ConfigureAwait(false);
|
||||
|
||||
BlurayDiscInfo blurayDiscInfo = null;
|
||||
|
||||
@@ -123,7 +123,7 @@ namespace MediaBrowser.Providers.MediaInfo
|
||||
{
|
||||
var video = item as Video;
|
||||
|
||||
return item.LocationType == LocationType.FileSystem && video != null && !video.IsPlaceHolder && !video.IsShortcut;
|
||||
return item.LocationType == LocationType.FileSystem && video != null && !video.IsPlaceHolder && !video.IsShortcut && !video.IsArchive;
|
||||
}
|
||||
|
||||
public int Order
|
||||
|
||||
Reference in New Issue
Block a user